解决Twitter Api中statuses/update_with_media出现{"mes...

本文详细解析了在使用Twitter API上传图片时遇到的问题,并提供了解决方案。主要问题出现在HTTP Body的构造上,特别是边界符及Content-Transfer-Encoding属性的设置。

对于这个问题官方文档也没有相关描述,网上文章更是少,只有提问没有回答的。我花了一个晚上和一个上午的时间终于找到问题的所在了,主要是HTTP Body里面出现了问题,由于在构造muliti-part结构时起始的boundary多了个\r\n。然后其实每个需要上传的图片附件都需要指定多一个属性:Content-Transfer-Encoding。如果没有这个属性是绝对会报错的,那么官方提供的例子其实可以写成下面形式就不会造成不必要的问题:

POST /1.1/statuses/update_with_media.jsonHTTP/1.1
Host:api.twitter.com
User-Agent:Go http package
Content-Length:15532
Authorization:OAuth oauth_consumer_key="...", oauth_nonce="...", oauth_signature="...", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1347058301", oauth_token="...", oauth_version="1.0"
Content-Type:multipart/form-data;boundary=cce6735153bf14e47e999e68bb183e70a1fa7fc89722fc1efdf03a917340
Accept-Encoding:gzip
 
--cce6735153bf14e47e999e68bb183e70a1fa7fc89722fc1efdf03a917340
Content-Disposition:form-data;name="status"
 
Hello 2012-09-07 15:51:41.375247-0700 PDT!
--cce6735153bf14e47e999e68bb183e70a1fa7fc89722fc1efdf03a917340
Content-Type:application/octet-stream
Content-Disposition:form-data;name="media[]";filename="media.png"
Content-Transfer-Encoding:binary
 
...
--cce6735153bf14e47e999e68bb183e70a1fa7fc89722fc1efdf03a917340--

希望对大家有所帮助,^_^

转载于:https://my.oschina.net/vimfung/blog/108073

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值