Как на php отправить http-запрос?
POST /v2/posting/fbo/get HTTP/1.1
Host: api.api.ru
Client-Id: 836
Api-Key: 0296d4f2-70a1-4c09-b507-90005567b9
Content-Type: application/json
{
"posting_number": "1305-0001-1"
}
Подскажите пожалуйста как будет выглядеть код для отправки этого запроса? Заранее спасибо!
Ответы (2 шт):
Автор решения: Enokin
→ Ссылка
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.api.ru/v2/posting/fbo/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('posting_number' => '1305-0001-1'),
CURLOPT_HTTPHEADER => array(
"Client-Id: 836",
"Host: api.api.ru",
"Api-Key: 0296d4f2-70a1-4c09-b507-90005567b9",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Думаю будет вот так выглядеть запрос
Автор решения: Jigius
→ Ссылка
Пример POST-запроса с использованием потоков (на вариант использованием CURL-библиотеки вам уже дали ответ):
<?php
$content = <<< EOT
{
"posting_number": "1305-0001-1"
}
EOT;
$opts = [
'http' => [
'method' => 'POST',
'header' =>
"Client-Id: 836\r\n" .
"Api-Key: 0296d4f2-70a1-4c09-b507-90005567b9\r\n" .
"Content-type: application/x-www-form-urlencoded\r\n",
'content' => $content
]
];
$context = stream_context_create($opts);
$response = file_get_contents("http://api.api.ru/v2/posting/fbo/get", false, $context);
if ($response === false) {
// обработка ошибки
} else {
echo $response; // успех!
}
А лучше, вместо того, чтобы хардкодить:), воспользоваться готовой http-client библиотекой. Одна из таких - guzzlehttp/guzzle