Установка заголовка curl как указано POSTman - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь сделать запрос GET к API, который требует дайджест-аутентификации.У меня все настроено в POSTman и он правильно возвращает ожидаемый результат.После экспорта кода в PHP в CuRL, POSTman поместил его в неправильный синтаксис.

Я знаю, что POSTman может не подходить для этого, но я пробовал без него и столкнулся с той же проблемой.Мне возвращается "Требуется аутентификация дайджеста HTTP для 'api.apiaddress.net'"

Я установил: curl_setopt ($ curl, CURLOPT_HTTPAUTH, 2); дляуказать дайджест аутентификации.Фактический заголовок, который POSTman отправлял, когда я добился успеха, выглядел в основном так:

"Авторизация:" Digest username = "username", realm = "api.apiaddress.net", nonce = "44444444444444444444444444444444", uri =" / getzonefromzip? UserID = 1020 & ZipCd = 94536 ", алгоритма =" MD5 ", response =" 44444446fcc7499d426900ed8d86cdc ", непрозрачный =" 4444444444068b2591c2eed622525b0e ""

* 1013, конечно, вы можете представитьне работает в PHP из-за двойных двойных кавычек. Я заменил внешние кавычки одинарными кавычками, чтобы получить несколько правильный синтаксис, а затем получаю:
"Аутентификация дайджеста HTTP, необходимая для 'api.apiaddress.net'"

Я провел исследование по этому вопросу, и я все еще не уверен, как правильно установить этот заголовок для дайджест-аутентификации. Пожалуйста, помогите! Спасибо.

curl_setopt_array($curl, array(
      CURLOPT_URL => "http://api.apiaddress.net/getzonefromzip?UserID=1020&ZipCd=94536",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
      CURLOPT_HTTPHEADER => array(
        "Accept: */*",
        'Authorization: Digest username="cyberoffice", realm="api.apiaddress.net", nonce="33333333333333333333333333333333", uri="/getzonefromzip?UserID=1222&ZipCd=94536", algorithm="MD5", response="5555555555555555555555555555555", opaque="5555555555555555555555555555555"',
        "Cache-Control: no-cache",
        "User-Agent: PostmanRuntime/7.17.1",
        "cache-control: no-cache"
      ),
    ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...