Отправка массива JSON с одного компьютера на другой с помощью PHP cURL — Как создать целевой URL из целевого IP-адреса

У меня есть две жизненно важные машины, установленные на рабочей станции VMWare, и они имеют разные IP-адреса. Я хочу отправить массив JSON с одной виртуальной машины на другую. Поэтому я использую библиотеку PHP cURL для отправки данных, и следую этот урок. Ниже мой фрагмент кода. Ради этого вопроса, давайте предположим, что AAA.BBB.CCC.DDD IP-адрес хоста назначения, куда я хочу отправить данные JSON.

У меня есть два вопроса:

  1. Все, что я знаю, это IP-адрес хоста назначения. Этот конечный компьютер имеет локальный сервер XAMPP. СЕЙЧАС, как мне создать этот URL для пункта назначения? Пожалуйста, посмотрите первую строку во фрагменте ниже, правильно ли я составляю URL?

2. Когда я выполняю этот сценарий на локальном хосте и тем временем запускаю Wireshark, три пакета, похоже, отправляются на конкретный IP-адрес назначения. НО я не знаю, как получить конкретные данные JSON на целевой машине? Было бы здорово, если бы кто-то мог указать мне на учебник для этого или дать мне подсказку?

<?php
$url = "http://AAA.BBB.CCC.DDD"; // AAA.BBB.CCC.DDD is replaced by the IP address of destination host.
//Initiate cURL.
$ch = curl_init($url);

//The JSON data.
$jsonData = array(
'name' => 'Jeremy',
);

//Encode the array into JSON.
$jsonDataEncoded = json_encode($jsonData);

//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);

//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);

//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

//Execute the request
$result = curl_exec($ch);

-1

Решение

Мой простой тестовый пример:

<?php
$url = 'http://localhost/curl-req.php';
$data = array("name" => "Heniek", "age" => "125", "rozmiar" => "M");
$data = json_encode($data);
// Send post data Json format
echo CurlSendPostJson($url,$data);
// send curl post
function CurlSendPostJson($url='http://localhost/curl-req.php',$datajson){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $datajson);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($datajson)));
//curl_setopt($ch,CURLOPT_HEADER, true); //if you want headers
return $result = curl_exec($ch);
}
?>

<?php
// save belove to: curl-req.php
// GET JSON CONTENT FROM CURL
$jsonStr = file_get_contents("php://input"); //read the HTTP body.
//echo $json = json_decode($jsonStr);
if (!empty($jsonStr)) {
echo $jsonStr;
}
// POST DATA FROM CURL
if (empty($jsonStr)) {
echo serialize($_POST);
}
// GET DATA FROM CURL
if (!empty($_GET)) {
echo serialize($_GET);
}
?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]