Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用来自其他POST请求的变量在PHP中发送JSON POST请求?_Php_Html_Json - Fatal编程技术网

如何使用来自其他POST请求的变量在PHP中发送JSON POST请求?

如何使用来自其他POST请求的变量在PHP中发送JSON POST请求?,php,html,json,Php,Html,Json,我必须发送多个JSON POST并将请求放入API。 这些POST和PUT请求必须在填写带有特定信息的表格后发送。 因此,我使用HTML创建了一个表单,它向PHP页面发送一个标准POST请求(而不是JSON)。 以下是HTML: <!DOCTYPE html> <html> <body> <form action="test1.php" method="post" target="_blank"> Server 1 IP Address: &l

我必须发送多个JSON POST并将请求放入API。 这些POST和PUT请求必须在填写带有特定信息的表格后发送。 因此,我使用HTML创建了一个表单,它向PHP页面发送一个标准POST请求(而不是JSON)。 以下是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脚本必须发送以下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脚本应该能够获取正确的变量并将其放置在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"
    }
POST
https:///config/SlbNewCfgEnhRealServerTable/S1
{
“国家”:“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);

所以…真正的问题是,
如何使用JSON作为数据从PHP脚本执行POST请求。对的如果是的话。答案是cURL,您的问题是正确的,但是在您提出的链接上,有一个静态JSON数据。我问PHP脚本如何配置为从HTML表单发送的POST数据中获取数据并以JSON数据的形式发送。谢谢。传递动态数据而不是静态数据?我真的不明白这个问题。循环post数组,抽象元素,创建新数组,json编码,将其作为
$data
参数传递。
POST
https://<Server_IP>/config/SlbNewCfgEnhRealServerTable/S1

    {
    "State":"2"
    "IpAddr":"1.1.1.1"
    }
$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);