Я работаю над скриптом PHP, который должен подключаться к REST API. Поставщик API предложил использовать cURL. Они дали мне пример того, как использовать его в командной строке:Параметры командной строки cURL в PHP
curl -D- -u "user:password" -X GET -H "Content-Type: application/json" http://example.com/api/searchFunction?jql=assignee=user1
РНР скрипт выглядит следующим образом:
<?php
$defaults = array(
CURLOPT_HEADER => true,
CURLOPT_URL => 'http://example.com/api/searchFunction?jql=assignee=user1',
CURLOPT_USERPWD => "user:password",
CURLOPT_HTTPAUTH => 'CURLAUTH_BASIC'
);
$ch = curl_init();
curl_setopt_array($ch, ($defaults));
echo "cURL output: ".curl_exec($ch);
curl_close($ch);
?>
Как вы можете себе представить, версия командной строки работает нормально, но в в версии PHP я получил следующую ошибку:
Field 'assignee' does not exist or this field cannot be viewed by anonymous users.
Это говорит о том, что валидация входа в систему не работает. Однако пользователь и пароль верны.
Я искал уже ответные сообщения эквивалентов параметров cURL между версией командной строки и версией PHP, но не смог найти правильные параметры для версии PHP.
'? Jql = assignee = user1' - что это должно быть? Может ли быть опечатка? –
[link] (http://stackoverflow.com/a/17991852/4815044) Возможно, этот ответ на аналогичный вопрос может вам помочь. urlencode переменная jql? –