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 を受け取ります。
エラー Domain=NSURLErrorDomain Code=-1012 UserInfo=0x4823e00 「操作を完了できませんでした。(NSURLErrorDomain エラー -1012。)」
ここで何が間違っていますか?パスワードに & を残すと、コードがクラッシュします (setParamaters 配列が失敗します)。OAuth を使用する前に、これに遭遇した人はいますか?
英数字のパスワードを使用している場合、すべて正常に機能します...ご指導いただきありがとうございます。