2

Oauth と twitter api ver1.1 に問題があります。私のアプリは、別のサイトに何かを投稿すると、Twitter に投稿をツイートします。しかし、投稿本文にエクスクラメーション マーク ('!') が含まれていると、'Unauthorized' という 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 に答える