我在 iPhone twitter 应用程序中使用 OAuth/xAuth,并且遇到了包含特殊字符的密码问题。例如“密码&”。首先,我通过执行以下操作将 & 转换为 %26:
NSString *encodedPassword = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)thePassword,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );
这会将其编码为“password%26”。然后我将其设置为 OAMutableURLRequest 的参数:
[request setParameters:[NSArray arrayWithObjects:
[OARequestParameter requestParameterWithName:@"x_auth_mode" value:@"client_auth"],
[OARequestParameter requestParameterWithName:@"x_auth_username" value:encodedUsername],
[OARequestParameter requestParameterWithName:@"x_auth_password" value:encodedPassword],
nil]];
使用 OADataFetcher 发送请求后,我收到 NSUrlError:
错误域=NSURLErrorDomain 代码=-1012 UserInfo=0x4823e00 “操作无法完成。(NSURLErrorDomain 错误 -1012。)”
我在这里做错了什么?如果我将 & 留在密码中,它会使我的代码崩溃(setParamaters 数组失败)。有没有人在使用 OAuth 之前遇到过这个问题?
如果我有一个字母数字密码,一切正常...感谢您的指导!