1


1

NSURLConnectionでlibcurlの「CURLOPT_USERPWD」フィールドを設定する方法

NSURConnectionを使用してWebサービスにアクセスしようとしていますが、phpに指定されたサンプルコードはlibcurlのCURLOPT_USERPWDフィールドを設定しているため、NSURLConnection / NSURLReqestにはそのようなフィールドがないようです。

1 回答


2


ユーザー名とパスワードを取得し、コロンで連結します。 結果の文字列を取得し、Base64でエンコードします。 Base64でエンコードされた文字列を取得し、「Basic」(スペースを含む)を追加します。 次に、その文字列( Basic [Base64 encoded value])を取得し、リクエストの「Authorization」ヘッダーとして設定します。

あるいは、 `NSURLConnection`デリゲートメソッドを使用している場合、次のような方法でそれらの1つを実装できます。

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
  NSURLCredential * credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistenceForSession];
  [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
}

(警告:テストされていない、ブラウザに入力された。 警告実装者