Facebook API 使用带有多部分表单数据的 HTTP POST 请求的错误响应

Posted

技术标签:

【中文标题】Facebook API 使用带有多部分表单数据的 HTTP POST 请求的错误响应【英文标题】:Error response from the Facebook API using HTTP POST request with multipart form-data 【发布时间】:2017-10-27 10:44:55 【问题描述】:

我在虚幻引擎 4 项目中使用 Facebook Graph API。我正在尝试实现照片上传。我使用的方法是多部分表单数据。

这是我收到的回复:

response="error":"message":"无效参数","type" :"OAuthException","code":100,"error_subcode":1366046,"is_transient":false,"error_user_title":"不能 读取文件","error_user_msg":"您的照片无法上传。相片 应小于 4 MB 并保存为 JPG、PNG、GIF 或 TIFF 文件。","fbtrace_id":"AaAcYvfdWM/"

ps:文件小于 4 MB。

HTTP 请求网址

https://graph.facebook.com/me/photos…my user token

HTTP 请求格式

内容类型:多部分/表单数据;边界=---------UE4AdvancedFB

------------UE4AdvancedFB

内容配置:表单数据;名称=“来源”;文件名="sf.jpg"

内容类型:图片/jpeg

字节数据

------------UE4AdvancedFB--

需要注意的重要一点是,我实际上没有文件,而只有字节(来自游戏纹理)。

如果我只想发送字节但实际上没有文件,我该怎么办? (Content-Disposition 文件名应该是什么?以及 Content-Type?)

对错误响应有什么想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

请求实际上是正确的。问题是发送的图像数据。从游戏纹理到字节数据的转换实际上导致了大于最大 4 MB 的大小。

谢谢。

【讨论】:

以上是关于Facebook API 使用带有多部分表单数据的 HTTP POST 请求的错误响应的主要内容,如果未能解决你的问题,请参考以下文章

API 网关 - POST 多部分/表单数据

如何使用带有 Rocket 的 abonander/multipart 解析多部分表单?

API Gateway - 发布多部分/表单数据

如何使用 Spring MockMvc 放置多部分/表单数据?

Quarkus 找不到内容类型多部分/表单数据休息客户端的编写器

Web API:使用 MultipartMemoryStreamProvider 时如何访问多部分表单值?