Я пытаюсь отправить следующий Curl запрос в PHP:Curl JSON в PHP
$ curl -H 'Content-Type: application/json' -d '{"username":"a", "password":"b","msisdn":"447000000001","webhook":"http://example.com/"}' https://ms.4url.eu/lookup
Который должен вернуться:
198 bytes text/html; charset=UTF-8
{
"id": "ea26d0b2-b839-46b9-9138-50cc791bab47",
"msisdn": "447825001771",
"status": "Success",
"networkCode": "23471",
"countryName": "UK",
"countryCode": "GBR",
"network": "O2",
"networkType": "GSM",
"ported": "No"
}
Я попытался реализовать код, чтобы отправить запрос с помощью Curl нравится так:
<?php
$data = array('{"username":"a", "password":"b", "msisdn":"447123121234", "webhook":"http://1f89e4a8.ngrok.io"}');
$data_string = json_encode($data);
$ch = curl_init('http://ms.4url.eu/lookup');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
?>
не используя этот метод ничего, кажется, происходит, я не могу видеть данные в формате JSON отправляется в ms.4url. eu/lookup, и когда я пытаюсь выполнить echo $ result, я не получаю никаких данных.
Любая помощь очень ценится.
запрос Успешный локон показывает:
POST /testDir/getPost.php HTTP/1.1
host: 1f89e4a8.ngrok.io
accept: application/json
content-type: application/json
content-length: 198
Connection: close
X-Forwarded-For: 5.44.233.221
{"id":"ea26d0b2-b839-46b9-9138-50cc791bab47","msisdn":"447123121234","status":"Success","networkCode":"23471","countryName":"UK","countryCode":"GBR","network":"O2","networkType":"GSM","ported":"No"}
запрос Сообщение от моего PHP кода показывает:
GET /testDir/curlPost.php HTTP/1.1
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Language: en-GB
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
Accept-Encoding: gzip, deflate
Host: 1f89e4a8.ngrok.io
X-Forwarded-For: 92.11.143.199
В целом я хотел бы отправить запрос локон от sendRequest.php и получить Сообщение для webhook to getPost.php, возможно, используя:
$entityBody = file_get_contents('php://input');
if ($entityBody != null){
echo $entityBody;
}
на Минута Я использую getPost.php для отправки HTTP 200 OK, поэтому ms.4url.eu прекращает отправку запросов 302 Найдено.
Я закончил с использованием этого подхода; Проблема с исходной попыткой, которую я опубликовала, - это то, что я не инициировал массив должным образом, поэтому «кодирование» и некорректный объект JSON, который API не мог прочитать. Привет, Иван. –