- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 OAuthConsumer在我的 iOS 应用程序中,它使用了 Tumblr API .进行 API 调用通常效果很好。但是,我很难上传任何媒体。当我请求的所有参数都是整数或字符串时,我就这样添加它们:
[request setParameters:[NSArray arrayWithObjects:
[OARequestParameter requestParameterWithName:@"x_auth_username" value:username],
[OARequestParameter requestParameterWithName:@"x_auth_password" value:password],
nil]];
这显然不适用于例如图片。我发现我可能必须将此数据作为 multipart/form-data
而不是 application/x-www-form-urlencoded
发送,因此,它不会对 oAuth 签名有任何影响。然而,据我所知,OAuthConsumer 仅支持x-www-form-urlencoded
(相关代码位于NSMutableURLRequest+Parameters.m
)。但是,我不确定这是否正确,如果是这样,我真的不知道如何正确修改 Consumer
。任何帮助将不胜感激!
最佳答案
好吧,我自己想通了。这有几个部分,因为我看到其他人有类似的问题,所以我将详细介绍:
首先,我使用的是过时版本的 OAuthConsumer。而不是使用 linked on Google Code 的版本, 你应该使用更新的版本 from github因为它包括发送包含多个字符串的多部分表单的方法。
现在,如果我没有完全错的话,理论上你现在应该做的是:
//Setup the request...
[request setParameters:params];
[request attachFileWithName:@"data" filename:@"photo.jpg" contentType:@"image/jpeg" data:dataProp.data];
//Setup the fetcher and send the request...
这将生成一个仅包含 oauth_...
变量的 oAuth 签名,将所有其他变量放入多部分形式。这是应该的,根据文档,你应该没问题。不幸的是,你不是,tumblr 将返回 401 错误,这很可能是由无效签名引起的。
这是你真正需要做的:
//Setup the request...
[request setParameters:params];
[request prepare]; //Whaaaat?
[request attachFileWithName:@"data" filename:@"photo.jpg" contentType:@"image/jpeg" data:dataProp.data];
//Setup the fetcher, make sure "prepare" isn't called again, send the request...
这会起作用...同样,我很确定这不是 oAuth 应该处理的方式,但至少它起作用了。
关于ios - 使用适用于 iOS 的 OAuthConsumer 将图像上传到 tumblr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212975/
我正在尝试使用 OAuthConsumer 将图像发布到 TwitPic。我不断收到 401“无法验证您的身份(标题被 Twitter 拒绝)”。错误。 我还利用 Twitter+OAuth 库来处理
我正在使用 Jon Crosby (google code link) 的 OAuthConsumer 库 我已经成功地使用访问和请求 token / secret 设置了我的项目,以向服务器 (GE
我正在使用 OAuthConsumer在我的 iOS 应用程序中,它使用了 Tumblr API .进行 API 调用通常效果很好。但是,我很难上传任何媒体。当我请求的所有参数都是整数或字符串时,我就
我是一名优秀的程序员,十分优秀!