Как отправлять запросы PSON JSON в PHP, используя переменные из других запросов POST?

Я должен отправить несколько запросов JSON POST и PUT к API.
Эти запросы POST и PUT должны отправляться после заполнения формы с конкретной информацией.
Итак, я создал форму с использованием HTML, которая отправляет стандартный запрос POST (не JSON) на страницу PHP.
Вот HTML-код:

<!DOCTYPE html>
<html>
<body>

<form action="test1.php" method="post" target="_blank">
Server 1 IP Address: <input type="text" name="1st_server_ip"><br>
Server 1 Name: <input type="text" name="1st_server_name"><br>
Server 2 IP Address: <input type="text" name="2nd_server_ip"><br>
Server 2 Name: <input type="text" name="2st_server_name"><br>
Farm Name: <input type="text" name="fname"><br>
Virtual Server IP Address: <input type="text" name="vip"><br>
Virtual Server Port: <input type="text" name="vport"><br>
Timeout: <input type="text" name="tmout"><br>
<input type="submit" value="Submit">
</form>

</body>
</html>

Теперь мне нужна эта страница PHP для выполнения нескольких запросов JSON POST и PUT, основанных на переменных, поступающих в запросе POST из формы.
Например:

The "Server 1 IP Address" will be 1.1.1.1.
The "Server 1 Name" will be S1.
The "Server 2 IP Address" will be 2.2.2.2.
The "Server 2 Name" will be S2.
The "Farm Name" will be Test_Farm.
The "Virtual Server IP Address" will be 3.3.3.3.
The "Virtual Server Port" will be 80.
The "Timeout" will be 6.

Сценарий PHP должен будет отправлять следующие запросы JSOT POST или PUT:

POST:
https://<Server_IP>/config/SlbNewCfgEnhRealServerTable/<value from "Server 1 Name"> ----> That is, "S1".{
"State":"2""IpAddr":"<value from "Server 1 IP Address">" ----> That is, "1.1.1.1".
}

POST:
https://<Server_IP>/config/SlbNewCfgEnhRealServerTable/<value from "Server 2 Name"> ----> That is, "S2".

{
"State":"2""IpAddr":"<value from "Server 2 IP Address">" ----> That is, "2.2.2.2".
}

POST:
https://<Server_IP>/config/SlbNewCfgEnhGroupTable/<value from "Farm Name"> -----> That is, "Test_Farm".

{
"AddServer":"<value from "Server 1 Name">" -----> That is, "S1".
"AddServer":"<value from "Server 2 Name">" -----> That is, "S2".
}

POST:
https://<Server_IP>/config/SlbNewCfgEnhVirtServerTable/<value from "Farm Name"> -----> That is, "Test_Farm".

{
"VirtServerIpAddress":"<value from "Virtual Server IP Address">" -----> That is, "3.3.3.3".
"VirtServerState":"2"}

POST:
https://<Server_IP>/config/SlbNewCfgEnhVirtServicesTable/<value from "Farm Name">/1

{
"VirtPort":"<value from "Virtual Server Port">" -----> That is, "80".
}

PUT:
https://<Server_IP>/config/SlbNewCfgEnhVirtServicesSixthPartTable/<value from "Farm Name">/1

{
"TimeOut":"<value from "Timeout">" -----> That is, "6".
}

PUT:
https://<Server_IP>/config/SlbNewCfgEnhVirtServicesSeventhPartTable/<value from "Farm Name">/1

{
"RealGroup":"<value from "Farm Name">" ----> That is, "Test_Farm".
}

POST
https://<Server_IP>/config?action=apply

POST
https://<Server_IP>/config?action=save

Кто-нибудь знает, как создать один сценарий PHP, который будет отправлять все эти запросы POST и PUT при получении другого запроса POST из формы HTML, и будет знать, как вставить правильные значения из одного запроса POST, отправленного из формы HTML?

Ожидается, что тело POST из HTML-формы будет выглядеть следующим образом:

1st_server_ip=1.1.1.1&1st_server_name=S1&2nd_server_ip=2.2.2.2&2nd_server_name=S2&fname=Test_Farm&vip=3.3.3.3&vport=80&tmout=6

Таким образом, PHP-скрипт должен иметь возможность взять правильную переменную и поместить ее в нужное место в JSON HTTP POST.
Например, возьмите «1.1.1.1» из «1st_server_ip = 1.1.1.1» и «S1» из «1st_server_name = S1» и поместите их в:

POST
https://<Server_IP>/config/SlbNewCfgEnhRealServerTable/S1

{
"State":"2""IpAddr":"1.1.1.1"}

Заранее благодарим, Уди Дахан.

0

Решение

Вы бы использовали curl:

$cu = curl_init();

//Set the server you're "posting" to
curl_setopt($cu, CURLOPT_URL,"http://the_constructed_url");
curl_setopt($cu, CURLOPT_POST, 1); //use "POST" method
curl_setopt($cu, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2");

//Want response
curl_setopt($cu, CURLOPT_RETURNTRANSFER, true);

//Get response
$res = curl_exec ($cu);

curl_close ($cu);
1

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

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

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