[twitter error 401]我应该用感叹号做什么?

时间:2013-07-01 07:06:42

标签: objective-c twitter twitter-oauth

大家好,我正面临着Oauth和twitter api ver1.1的问题。当我向其他网站发布内容时,我的应用会向Twitter发推文。但是当帖子正文中包含感叹号('!')时,我会收到Twitter 401错误,即“未经授权”。我在谷歌搜索,发现它可能与Oauth有关。有人说'!'必须编码为'%21'。我尝试了但是当我推特'!'推特,我只是'%21'而不是'!'本身。任何人都可以给我一些提示我如何编码'!'正确?

1 个答案:

答案 0 :(得分: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