如何使用Squeak / Smalltalk WebClient构造多部分表单请求并对其进行POST

时间:2015-07-09 22:19:23

标签: api http twitter smalltalk squeak

我正在尝试将图像上传到Twitter-API,这需要一个多部分/表单数据oAuth签名的POST请求。 然而,在我的代码中似乎存在某种错误,因为我每次尝试调用函数时都会遇到503错误。哪个应该是"暂时不可用"错误,但它在一天的不同时间是不变的,显然其他人在通过Twitter-API上传媒体时遇到同样的问题。

根据我发现的一些例子,我正在构建像这样的多部分标题:

postData := '--', boundary, String crlf,
            'Content-Disposition: form-data; filename="upload.png"; name="media"', String crlf,
            'Content-Type: image/png', String crlf,
            'Content-Transfer-Encoding: base64', String crlf,
            morphAsBinaryString, String crlf,
            '--', boundary,'--', String crlf.

实际的httpPost命令如下:

request := client httpPost: url 
        content: postData
        type: 'multipart/form-data; boundary=', boundary
        do:[:req | WebUtils oAuthSign: req url: url extra: extra using: personalOauthParams].

这是正确的做法吗? 提前感谢您的帮助。

更新: 事实证明,媒体数据之前的行中缺少一个String crlf。现在我得到了#34;身份验证要求"错误。其他API调用没有问题。

0 个答案:

没有答案