1

Microsoft Face APIをテストするためにバイナリイメージファイルを送信しようとしています。 POSTMANを使用して完全に動作し、私は期待通りにfaceIdを返す。しかし、私は、Pythonのコードに、それは現在、私は、このエラーを与えていることを移行しよう:Microsoft Face APIを使用しているPython POSTリクエストエラー "image format unsupported"

{"error": {"code": "InvalidImage", "message": "Decoding error, image format unsupported."}} 

私はこのSO postを読んで、それは助けにはなりません。リクエストを送信するコードは次のとおりです。私はPOSTMANがヘッダapplication/octet-streamでラベル付けするなどしていることを模倣しようとしていますが、動作しません。何か案は?

url = "https://api.projectoxford.ai/face/v1.0/detect" 

headers = { 
    'ocp-apim-subscription-key': "<key>", 
    'content-type': "application/octet-stream", 
    'cache-control': "no-cache", 
} 

data = open('IMG_0670.jpg', 'rb') 
files = {'IMG_0670.jpg': ('IMG_0670.jpg', data, 'application/octet-stream')} 

response = requests.post(url, headers=headers, files=files) 

print(response.text) 

答えて

4

だから、APIエンドポイントは、バイト配列を取るだけでなく、data、ないfilesとして入力ボディのparamが必要です。とにかく、このコードは私のために働く。

url = "https://api.projectoxford.ai/face/v1.0/detect" 

headers = { 
    'ocp-apim-subscription-key': "<key>", 
    'Content-Type': "application/octet-stream", 
    'cache-control': "no-cache", 
} 

data = open('IMG_0670.jpg', 'rb').read() 

response = requests.post(url, headers=headers, data=data) 

print(response.text) 
関連する問題