Как установить поле "CURLOPT_USERPWD" в libcurl в NSURLConnection - PullRequest
1 голос
/ 14 августа 2010

Я пытаюсь получить доступ к веб-службе, используя NSURConnection, но я не уверен, как отправить пароль туда, потому что пример кода, приведенный в php, устанавливает поле CURLOPT_USERPWD в libcurl, и в NSURLConnection / NSURLReqest такого поля, похоже, нет .

1 Ответ

2 голосов
/ 14 августа 2010

Возьмите имя пользователя и пароль и объедините их вместе с двоеточием. Возьмите полученную строку и Base64 закодируйте ее. Возьмите строку в кодировке Base64 и добавьте «Basic» (с пробелом). Теперь возьмите эту строку (Basic [Base64 encoded value]) и установите ее в качестве заголовка «Авторизация» для вашего запроса.

В качестве альтернативы, если вы используете методы делегата NSURLConnection, вы можете реализовать один из них примерно так:

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

(предупреждение: не проверено, набрано в браузере. предостерегает разработчика )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...