2

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

4

1 回答 1

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
于 2013-07-01T11:42:56.787 回答