CocoaでMacOSX用のHTTPクライアントを開発しています。NSMutableURLRequestと、NSURLConnectionを使ってPOSTでアクセスします。

しかし、アクセスしたいURLにはベーシック認証がかかっています。http://user:pass@hoge.comとして、アクセスすれば何とかなるのですが、もっとスマートな方法はないかなと思っています(Authorizationヘッダを使うとか)。
何か良い方法はないでしょうか?

回答の条件
  • 1人5回まで
  • 登録:2007/11/18 19:37:58
  • 終了:2007/11/19 21:16:47

回答(2件)

id:thrillseeker No.1

thrillseeker回答回数328ベストアンサー獲得回数372007/11/18 20:57:28

ポイント100pt

やはり素直にAuthorizationヘッダを作るのがいいんじゃないんですかね。

Authorization: Basic (user:password を base64 エンコードした文字列)

NSMutableURLRequest でヘッダを追加する方法:

http://www.oomori.com/cocoafw/Foundation/NSMutableURLRequest/set...


Cocoa で base64 エンコードする方法:

http://homepage.mac.com/t_yamane/prog/Base64/page.html

id:cheebow

ありがとうございます。

この方法は僕も見たんですが、NSDataをstringEncodedWithBase64で文字列にするものなのです。NSStringからNSStringへエンコードできると良いのですが

2007/11/18 21:25:32
id:thrillseeker No.2

thrillseeker回答回数328ベストアンサー獲得回数372007/11/19 05:50:21

ポイント100pt

NSDataをstringEncodedWithBase64で文字列にするものなのです。

NSString を一旦 dataUsingEncoding で NSData に変換するのでどうでしょう?

http://www.oomori.com/cocoafw/Foundation/NSString/dataUsingEncod...


encoding には NSASCIIStringEncoding あたりを指定しておけば良いかと。

http://developer.apple.com/documentation/Cocoa/Reference/Foundat...

id:cheebow

なるほど!

そうですね。こうすればうまく行きそうです。

試してみたいと思います。

ありがとうございました!

2007/11/19 21:14:13
  • id:thrillseeker
    高ポイントありがとうございます。
    あとで分かったのですが、openssl のライブラリ関数を使う方法もあるようです。
    http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/BIO_f_base64.3ssl.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません