Python请求 - 根据给定的curl请求格式化数据

时间:2012-11-09 21:17:50

标签: python http curl httprequest python-requests

 $ curl -F myfile=@myfilename -F 'data={"title":"some title","otherinfo" : "aabcdef"}' https://someurl

以上是终端的正常工作方式。

我尝试以这种方式使用请求在python中实现它:

files = {'myfile': open('myfilename', 'rb')}
data = {}

data['data'] = {
    'title' : 'some title',
    'otherinfo' : 'other info'
}

r = requests.post(url, files=files, data=data, auth=auth)

这里,数据没有正确到达目的地,我错在哪里?

1 个答案:

答案 0 :(得分:0)

当您使用-F参数时,curl会将Content-Type设置为multipart/form-data的数据发送,而当您使用data参数时,请求Content-Type设置为{{1} }}。您应该指示请求使用权限application/x-www-form-urlencoded发送数据。请参阅How to send a "multipart/form-data" with requests in python?如何执行此操作。