2017-03-03 22 views
0

オンラインサービスでは、javascriptは新しいフォームデータを使用して画像を取得し、このコードでオブジェクトを取得する簡単なAPI呼び出しを渡しています。pythonでのPOSTリクエスト400 Bad Request

function sendSearchImage(form) { 
console.log(">>> sendSearchImage"); 
var image = new FormData(); 
image.append('refImage', readFile); 

$.ajax({ 
     type: 'post', 
     url: instore_home + '/products/query', 
     contentType: false, 
     processData: false, 
     data: image, 
     success: function (response) { 
      console.log("<<< " + JSON.stringify(response)); 
      showQueryResults(response); 
      //alert("Ref image successfully added: code " + response.refImgId); 
      //alert(JSON.stringify(response)); 
      //window.location.reload(); 
     } 
    }); 

return false; 
} 

私が代わりにPythonで同じAPIを呼び出したいが、私は400得続ける:不正な要求応答を、ここではそれは今

files = {'refImage': ('1.jpg', open(os.getcwd()+"/images/1.jpg", "rb"), 'image/jpeg')} 
    headers = {"Content-Type":"multipart/form-data", "User-Agent" : "Mozilla/5.0"} 
    r = requests.post('Url', headers=headers, data=files) 

までアップ私のコードで誰かが私に教えてもらえた形式Iで良い応答を得るためにデータを渡す必要がありますか?

答えて

0

私はそれは自動的に構築され、手動で実装してあなたが正しいので、すべての値を取得することができないために危険を冒すようで、ヘッダーを指定しないことで、私の疑問を解決それらのいくつかは動的でさえあります。

0

おそらくウェブページにアクセスするために使用するユーザーエージェントです。代わりに、ヘッダー変数にこのヘッダーを使用します。

headers = {"Content-Type":"multipart/form-data","User-Agent" : "Mozilla/5.0"} 
+0

私は示唆したようにしようとしましたが、何も変更されませんでした。ポストフォーマットをできるだけhttpボディリクエストに似ているように少し変更しましたが、実際にはそのドキュメントはありません – Lukepell

関連する問題