使用python 400 Bad Request的POST请求

时间:2017-03-03 18:11:28

标签: javascript python api post request

在在线服务中,javascript使用新的表单数据来获取图像,然后通过一个简单的api调用来检索使用此代码的对象。

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)

有人可以告诉我,我应该以哪种格式传递数据以获得良好的响应?

2 个答案:

答案 0 :(得分:0)

可能是您用来访问网页的用户代理。请在header变量中使用此标头:

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

答案 1 :(得分:0)

我通过不指定标题解决了我的疑问,它似乎是自动构建的,并且通过手动实现,您可能无法获得所有正确的价值,因为其中一些甚至是动态的。