Python 文件应该如何在帖子中表示?
我正在使用Python请求并尝试将图像上传到Facebook Ads API服务器Python 文件应该如何在帖子中表示?,python,facebook,facebook-graph-api,python-requests,facebook-ads-api,Python,Facebook,Facebook Graph Api,Python Requests,Facebook Ads Api,我正在使用Python请求并尝试将图像上传到Facebook Ads API服务器 我可以使用data requests.post(endpoint, data={'pic.jpg': open('pic.jpg', 'rb')}) 然后,当我打印请求的主体时,它看起来像是pic.jpg=%FF%D8%FF%E0%00%10JFIF…带有一个长长的字符串,其中包含了%的内容(我猜是字节?) 我还可以使用文件 requests.post(endpoint, files={'pic.jpg':
我可以使用
data
requests.post(endpoint, data={'pic.jpg': open('pic.jpg', 'rb')})
然后,当我打印请求的主体时,它看起来像是pic.jpg=%FF%D8%FF%E0%00%10JFIF…
带有一个长长的字符串,其中包含了%的内容(我猜是字节?)
我还可以使用
文件
requests.post(endpoint, files={'pic.jpg': open('pic.jpg', 'rb')})
然后当我打印请求的主体时,它看起来
--7bfdd12d05f549f3953f32165da5900c
Content-Disposition: form-data; name="pic.jpg"; filename="pic.jpg"
????JFIFHH??C
!1AQ"q2??????#BRW?$3b????7Cr????...
还有很多奇怪的符号
哪一个是正确的,如果有的话,做文件上传?对于第一个,我从Facebook API中得到
[]
,对于第二个,当您使用文件时,我得到null
,POST数据被编码为多部分/表单数据
,这是发布包含大量二进制内容的表单数据时所需要的
另一方面,如果只使用数据
,则使用应用程序/x-www-form-urlencoded
(除非只传入字符串,否则数据将按原样发布)
对于文件上载,您可能希望使用前者,因为多部分/表单数据
还可以对文件数据的mime类型和文件名进行编码。查看他们的示例使用curl-F
,这是使用多部分/表单数据进行上传的文档
请记住,还需要在帖子中包含access\u令牌
:
requests.post(endpoint,
files={'pic.jpg': open('pic.jpg', 'rb')},
data={'access_token': '___'})
这将同时使用文件
和数据
,请求
将两者合并为一个多部分/表单数据
正文
另请参见和当您使用文件
时,POST数据编码为多部分/表单数据
,这是您在发布包含大量二进制内容的表单数据时所需要的
另一方面,如果只使用数据
,则使用应用程序/x-www-form-urlencoded
(除非只传入字符串,否则数据将按原样发布)
对于文件上载,您可能希望使用前者,因为多部分/表单数据
还可以对文件数据的mime类型和文件名进行编码。查看他们的示例使用curl-F
,这是使用多部分/表单数据进行上传的文档
请记住,还需要在帖子中包含access\u令牌
:
requests.post(endpoint,
files={'pic.jpg': open('pic.jpg', 'rb')},
data={'access_token': '___'})
这将同时使用文件
和数据
,请求
将两者合并为一个多部分/表单数据
正文
另请参见和当您使用文件
时,POST数据编码为多部分/表单数据
,这是您在发布包含大量二进制内容的表单数据时所需要的
另一方面,如果只使用数据
,则使用应用程序/x-www-form-urlencoded
(除非只传入字符串,否则数据将按原样发布)
对于文件上载,您可能希望使用前者,因为多部分/表单数据
还可以对文件数据的mime类型和文件名进行编码。查看他们的示例使用curl-F
,这是使用多部分/表单数据进行上传的文档
请记住,还需要在帖子中包含access\u令牌
:
requests.post(endpoint,
files={'pic.jpg': open('pic.jpg', 'rb')},
data={'access_token': '___'})
这将同时使用文件
和数据
,请求
将两者合并为一个多部分/表单数据
正文
另请参见和当您使用文件
时,POST数据编码为多部分/表单数据
,这是您在发布包含大量二进制内容的表单数据时所需要的
另一方面,如果只使用数据
,则使用应用程序/x-www-form-urlencoded
(除非只传入字符串,否则数据将按原样发布)
对于文件上载,您可能希望使用前者,因为多部分/表单数据
还可以对文件数据的mime类型和文件名进行编码。查看他们的示例使用curl-F
,这是使用多部分/表单数据进行上传的文档
请记住,还需要在帖子中包含access\u令牌
:
requests.post(endpoint,
files={'pic.jpg': open('pic.jpg', 'rb')},
data={'access_token': '___'})
这将同时使用文件
和数据
,请求
将两者合并为一个多部分/表单数据
正文
另请参见和API文档告诉您什么?使用文件
时,会使用多部分/表单数据
编码,这通常是正确的方法。API文档没有告诉我任何信息:((打开curl
命令的-F
开关似乎就是文档。我确实没有在那里看到任何其他内容,因此我认为API作者假设对HTTP和POST编码有一定的了解。好的,这表明应该使用多部分/表单数据
,这意味着文件
是还有一段路要走?这似乎是对的,但我仍然没有得到很好的响应,所以我想我必须继续挖掘。API文档告诉了你什么?当你使用文件时,使用了多部分/表单数据
编码,这通常是正确的方法。API文档没有告诉我任何事情:((打开curl
命令的-F
开关似乎就是文档。我确实没有在那里看到任何其他内容,因此我认为API作者假设对HTTP和POST编码有一定的了解。好的,这表明应该使用多部分/表单数据
,这意味着文件
是还有一段路要走?这似乎是对的,但我仍然没有得到很好的响应,所以我想我必须继续挖掘。API文档告诉了你什么?当你使用文件时,使用了多部分/表单数据
编码,这通常是正确的方法。API文档会这样做