小さな Twitter クライアントを実行しようとしていますが、認証が必要な API 呼び出しをテストしているときに問題が発生しました。
パスワードに特殊文字が含まれているため、次のコードを使用しようとしても機能しません。
NSString *post = [NSString stringWithFormat:@"status=%@", [status stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@:%@@%@/statuses/update.json", username, password, TwitterHostname]];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSError *error;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
私はbase64を調べ始め、認証をヘッダーに入れました。base64 の実装に関するDave Dribin の投稿を見つけましたが、それは理にかなっているように思えました。しかし、私がそれを使おうとすると、コンパイラはopensslライブラリが見つからないという不平を言い始めました。そのため、libcrypto ライブラリにリンクする必要があることを読みましたが、iphone には存在しないようです。
また、アップルは暗号化ライブラリを使用するアプリを許可しないと言っている人を読んだことがありますが、これは私には理解できません。
だから今、私はちょっと立ち往生して混乱しています。アプリで基本認証を取得する最も簡単な方法は何ですか?
乾杯