Я использую локальный скрипт php, который запускает curl на скрипте на удаленном сервере. Удаленный скрипт защищен HTTP-аутентификацией.
Когда я запускаю свой локальный скрипт, я получаю следующую ошибку:
«Этот сервер не смог подтвердить, что вы авторизованы для доступа к URL-адресу« /script.php ». Либо вы ввели неправильные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить необходимые учетные данные.
Если вам разрешено запросить документ, проверьте свой идентификатор пользователя и пароль и повторите попытку.
Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.
Ошибка 401 "
Я пробовал ответы с наибольшим количеством голосов отсюда: Как мне сделать запрос, используя базовую аутентификацию HTTP с PHP curl? и я пробовал это: https://thisinterestsme.com/php-curl-http-auth/
-> Я всегда получаю одну и ту же ошибку сверху.
Я определил $username
и $password
. Код, который я использую:
$url = 'https://' . $page . '/script.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
print_r($additionalHeaders);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($ch);
print_r($return);
curl_close($ch);
После печати переменной $additionalHeaders
перед ошибкой я получаю следующую дополнительную информацию:
«HTTP / 1.1 401 Unauthorized Дата: Сб, 10 августа 2019 г., 22:05:26 GMT Сервер: Apache WWW-аутентификация: Digest realm =" Protected ", nonce =" Xg78fMqPBQA = 8d674639fbd19b9ec67b085aa43e90be7a4c57cc ", алгоритм =" MD5 ", q Vary: accept-language, accept-charset Strict-Transport-Security: max-age = 16000000 Обновление: h2 Подключение: Обновление Accept-Ranges: байты Кодирование передачи: фрагментированное Content-Type: text / html; charset = utf-8 Content -Язык: en "
Печать $return
ничего не показывает ...
CURLAUTH_DIGEST
,curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_DIGEST);
- person hanshenrik   schedule 11.08.2019curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
наcurl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
решила проблему! - person codingforworlddomination   schedule 11.08.2019