[英]How to send JSON POST requests in PHP using variables from another POST requests?
我必須向一個API發送多個JSON POST和PUT請求。 這些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頁面根據來自表單的POST請求中的變量來執行多個JSON POST和PUT請求。 例如:
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腳本,當從HTML表單接收到另一個POST請求時,該腳本將發送所有這些POST和PUT請求,並且知道從HTML表單發送的一個POST請求中插入正確的值嗎?
來自HTML表單的POST正文應如下所示:
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中的正確位置。 例如,從“ 1st_server_ip = 1.1.1.1”中獲取“ 1.1.1.1”,從“ 1st_server_name = S1”中獲取“ S1”,然后將它們放入:
POST
https://<Server_IP>/config/SlbNewCfgEnhRealServerTable/S1
{
"State":"2"
"IpAddr":"1.1.1.1"
}
預先感謝Udi Dahan。
您將使用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.