twitter 错误 401 - 我应该如何处理感叹号?

Posted

技术标签:

【中文标题】twitter 错误 401 - 我应该如何处理感叹号?【英文标题】:twitter error 401 - What should I do with the exclamation mark? 【发布时间】:2013-06-28 06:07:24 【问题描述】:

我对 Oauth 和 twitter api ver1.1 有疑问。当向另一个网站发布内容时,我的应用程序会在 Twitter 上发布一条帖子。但是,当帖子正文包含感叹号(“!”)时,我收到 twitter 401 错误,即“未经授权”。我在google上搜索,发现它可能与Oauth有关。有人说“!”必须编码为“%21”。我试过了,但是当我发推文时“!”在 twitter 上,我只得到了 '%21' 但没有得到 '!'本身。我怎样才能编码'!'正确吗?

【问题讨论】:

作为附加信息,我正在使用 MGTwitterEngine。 尝试编码“!”到 ! 嗨@torip3ng,谢谢你的回答,但这次我得到了'!​​',仍然没有'!'。 你修好了吗? 【参考方案1】:

您必须使用此类别对您的推文进行编码

#import "NSString+URLEncoding.h"
@implementation NSString (OAURLEncodingAdditions)

- (NSString *)URLEncodedString 

    NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                       (CFStringRef)self,
                                                                       NULL,
                                                                       CFSTR("!*'();:@&=+$,/?%#[]"),
                                                                       kCFStringEncodingUTF8);
    [result autorelease];
    return result;


- (NSString*)URLDecodedString

    NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
                                                                                       (CFStringRef)self,
                                                                                       CFSTR(""),
                                                                                       kCFStringEncodingUTF8);
    [result autorelease];
    return result;  


@end

【讨论】:

嗨,@myke。谢谢你的回答。我在“OAMutableURLRequest”类中​​找到了 URLEncodedString: 方法,而在我的项目中没有找到 URLDecodedString:。 URLEncodedString: 被其他一些方法使用。你能告诉我应该在哪里使用 URLDecodedString: ? 我不知道 ;) 在我的 Twitter 客户端中,我不使用这种方法 @Sabbath,你是怎么解决这个问题的?如果您可以单独给出相同的答案,那就太好了。 :) @Hemang,我通过添加'!'解决了这个问题到 CFSTR("") 在 URLEncodedString 的实现中。

以上是关于twitter 错误 401 - 我应该如何处理感叹号?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Tweepy 检索 Twitter 数据时出现 401 错误

使用 Cordova 和 Angularjs 登录 Twitter:401 未经授权的错误

如何处理 CORS 错误代码?

Twitter流API返回401

当我们尝试在颤动中使用 twitter 登录时,如何处理您的设备上未安装 twitter 异常

我应该如何处理“'someFunction' 不是从 'namespace:somePackage' 导出的对象”错误? [关闭]