Ошибка 401 при использовании curl в PHP для доступа к REST API - PullRequest
0 голосов
/ 06 февраля 2012

Я пытаюсь выполнить команду curl, которую могу успешно выполнить в терминале, но она не выполняется в сценарии PHP со следующей ошибкой:

HTTP / 1.1 401 Unauthorized Access-Control-Allow-Origin: *Access-Control-Request-Method: * Cache-Control: без кэширования. Content-Type: application / json;charset = utf-8 Дата: понедельник, 06 февраля 2012 г. 00:38:56 GMT Сервер: nginx / 1.0.4 Набор-Cookie: _parse_session = XXXXXX;домен = .parse.com;Путь = /;истекает = вс, 06-фев-2022 00:38:56 GMT;Статус HttpOnly: 401 Несанкционированный WWW-Authenticate: Basic realm = "Parse" X-Runtime: 0.002486 X-UA-совместимый: IE = Edge, chrome = 1 Длина контента: 24 Соединение: keep-alive {"error": "unauthorized"}

Это команда, выполненная в терминале, которая успешно выполняется:

curl -H" Принять: application / json "-H" X-Parse-Application-Id: XXXXXXX "-H"X-Parse-REST-API-Key: XXXXXXXXX" -X GET "https://api.parse.com/1/classes/XXXXXX"

Это код PHP:

$fields = array('Accept: '=>'application/json',
            'X-Parse-Application-Id:' => 'XXXXX',
            'X-Parse-REST-API-Key:' => 'XXXXX');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.parse.com/1/classes/XXXX');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_HEADER, $fields);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, 'XXXXXX');

$result = curl_exec($ch);
curl_close($ch);

Интересно отметить, что при выполнении в информации аутентификации терминалане требуется.

Помощь будет оценена.

Спасибо

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

Ваши поля заголовка не должны иметь : в определении массива:

'X-Parse-REST-API-Key:' => 'XXXXX');
                     ^---remove these

Это делает : частью имени поля, так что вы на самом деле отправляете:

X-Parse-REST-API-Key:: XXXXX
                    ^^---note the doubled colons
0 голосов
/ 19 июня 2014

Ваш заголовок установлен с использованием CURLOPT_HTTPHEADER, а не CURLOPT_HEADER, который ожидает логическое значение

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