$ 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)
这里,数据没有正确到达目的地,我错在哪里?
答案 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?如何执行此操作。