cUrl Authorization basic

vano.mig

Новичок
Всем привет. Ребята, нужна помощь.
Пытаюсь подключиться к сервику с помощью curl
Код:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->configParams['url']);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$result = curl_exec($ch);
так получаю ответ
XXX-Authorization - insert username and password
если прописываю заголовок
Код:
$http_headers = [
    'Content-Type: application/json',
    'Authorization: Basic '.base64_encode($this->configParams['username'].':'.$this->configParams['password'])
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
получаю отлуп от апача 400 - Требование, отправленное клиентом, было синтаксически неверным.
Вчем может быть проблема?
 

vano.mig

Новичок
я не спорю, может и мой бок.
Но тогда подскажите что нужно добавить в мой код, я читал ссылку, но не понимаю что нужно еще
 

AnrDaemon

Продвинутый новичок
Не понимаете? Или не читали?
Авторизацию нужно добавить.
 

vano.mig

Новичок
если вы имеет ввиду
Код:
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
Код:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->configParams['url']);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);


$http_headers = [
    'Content-Type: application/json',
    'Authorization: Basic '.base64_encode($this->configParams['username'].':'.$this->configParams['password'])
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);
пробовал, результат тот же -
HTTP 400 -
The requirement sent by the client was syntactically incorrect.

и кэш пробовал чистить...
 

WMix

герр M:)ller
Партнер клуба
PHP:
curl_setopt($curl_conn, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl_conn, CURLOPT_USERPWD, 'username:password');
 

AnrDaemon

Продвинутый новичок
CURLOPT_HTTPAUTH задаёт ТИП авторизации.
А надо ещё данные добавить.
И, да, rawurlencode() самостоятельно применить надо.
 

vano.mig

Новичок
но это аналог того что написал я.
Код:
CURLOPT_USERPWD  =
base64_encode('username:password');
проверил, результат тот же...
 
Сверху