PHP CURL проблема | Тип контекста заголовка не отправляется - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь использовать API через PHP Curl, но соответствующие заголовки не отправляются.

Это мой код:

$array = array("user"=>"user", "password"=>"password");
$payload = http_build_query($array);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://...");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($payload)
    )
); 

// But, the response is:

/* 
["content_type"]=>
  string(23) "text/html;charset=UTF-8"
  ["http_code"]=>
  int(400)
  ["header_size"]=>
  int(288) 
*/

Кто-нибудь может сказать мне, что происходит?

1 Ответ

0 голосов
/ 17 июня 2020

content-type в ответе относится к content-type, возвращаемому API, который вы запрашиваете. Судя по предоставленному вами ответу, похоже, что в API возникают ошибки в зависимости от предоставленных вами параметров, поскольку код ответа 400 . Скорее всего, это означает, что вы не передаете правильные параметры, не передаете заголовок authorization (где требуется) или не отправляете правильный тип контента, который требуется API.

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