Я пытаюсь сделать запрос 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"
),
));