python – 多部分POST请求Google Glass

我正在尝试使用multipart编码为我的时间轴添加附件.我一直在做类似以下的事情:

req = urllib2.Request(url,data={body}, header={header})
resp = urllib2.urlopen(req).read()

它一直适用于application / json.但是,我不知道如何为multipart格式化body.我还使用了一些库:请求和海报,由于某种原因它们都返回401.

如何使用libary(最好是urllib2的插件)或urllib2本身(如上面的代码块)制作多部分请求?

 编辑:
我也希望这能够从https://developers.google.com/glass/timeline支持mirror-api“video / vnd.google-glass.stream-url”

对于使用海报库的请求,这里是代码:

register_openers()
datagen, headers = multipart_encode({'image1':open('555.jpg', 'rb')})

这里是使用requets:

headers = {'Authorization' : 'Bearer %s' % access_token}
files = {'file': open('555.jpg', 'rb')}
r = requests.post(timeline_url,files=files, headers=headers)

返回401 – >头

谢谢

最佳答案 有一个使用流视频网址功能的多部分请求的Curl示例:

Previous Streaming Video Answer with Curl example

它完全符合您的要求,但使用Curl.您只需将其调整到您的技术堆栈即可.

即使您使用正确的语法,您收到的401也会阻止您. 401响应表示您无权修改时间线.确保您可以先插入一个简单的hello world text only卡.一旦你越过401错误并进入解析错误和格式问题,上面的链接应该是你需要的一切.

最后一点,你不需要urllib2,镜像API团队在我们的膝盖上放弃了一个功能的宝石,我们不需要为获取视频的二进制文件而烦恼,检查上面链接的示例我只提供了一个多部分有效负载中的URL,无需流式传输二进制数据! Google为我们带来了XE6及以上版本的所有魔力.

谢谢Team Glass!

我想你会发现这比你想象的要简单.尝试卷曲示例并注意不兼容的视频类型,当你走到那么远时,如果你不使用兼容类型,它似乎不能在Glass中工作,请确保你的视频以Glass友好格式编码.

祝好运!

点赞