Мне нужно выполнить запрос Http с помощью метода CURL.
Вот документация службы, с которой я должен связаться.
Чтобы вызвать метод API, клиент делает запрос POST HTTPS на
https://app.kigo.net/api/ra/v1/method.
Заголовок Content-Type запроса должен быть установлен на application / json, а данные публикации (тело HTTP-запроса) должны содержать JSON-представление входных данных.
Пример правильного HTTP-запроса:
POST /api/ra/v1/ping HTTP/1.0
Host: app.kigo.net
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
{
"PING" : "PONG"}
Вопрос в том:
Как это сделать с CURL?
Вам нужны опции SSL для соединения https
followlocation будет следовать за любым перенаправлением
return_transfer сохранит ответ в переменной
$url = 'https://app.kigo.net/api/ra/v1/ping';
$headers = array( 'Authorization' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=', 'Content-Type' => 'application/json' );
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch,CURLOPT_POSTFIELDS, "PING=PONG");
$result = curl_exec($ch);
curl_close($ch);
print_r( $result );
Других решений пока нет …