【发布时间】:2017-02-11 12:14:38
【问题描述】:
我正在尝试通过改造将图像上传到PushBullet API。
在upload-request 之后,我触发了分段上传。
通过改造我得到这个错误:
{"error":{"code":"invalid_request","type":"invalid_request","message":"Invalid multipart body.","cat":"o(^・x・^)o"},"error_code":"invalid_request"}
这个问题只出现在我的 java 代码中,而不是 PAW HTTP-Client。
# PAW generated Request
POST /upload-legacy/bcSWXnBjNIwpkej7CxfIHFz0ugXO6yhf HTTP/1.1
Content-Type: multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__
Host: upload.pushbullet.com
Connection: close
User-Agent: Paw/3.0.12 (Macintosh; OS X/10.11.6) GCDHTTPRequest
Content-Length: 34508
--__X_PAW_BOUNDARY__
Content-Disposition: form-data; name="file"; filename="cat.jpg"
Content-Type: image/jpeg
...
# Retrofit generated Request
POST https://upload.pushbullet.com/upload-legacy/ZZ4fLcqt2WFQmlbKTDlgcYXtB3KiCs3M http/1.1
Content-Type: multipart/form-data; charset=utf-8
Content-Length: 2012
Content-Disposition: form-data; name="file"; filename="1475501429665_motion_detected.jpg"
Content-Type: image/jpeg; charset=utf-8
Content-Length: 1772
...
我认为重要的区别是Part 中的Content-Length。
我找到了这个issue,但这是否意味着 PushBullet API 不符合 HTTP 规范?
任何帮助将不胜感激。
【问题讨论】:
-
对我来说唯一突出的是 Content-Length 在您的 Retrofit 上传尝试中明显更小。我会尝试对这两种方法使用相同的 jpg 来排除这个问题。
-
@Trigona 没错,因为我用 Retrofit 发送了一个小得多的图像:)
标签: java http retrofit2 pushbullet