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

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

【问题讨论】:

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

标签: objective-c twitter twitter-oauth


【解决方案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 的实现中。
猜你喜欢
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 2015-10-25
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多