【发布时间】:2018-04-20 09:15:04
【问题描述】:
服务器站点中的表单包含一个文本框、两个单选按钮和一个提交按钮。这是我试过的。请帮忙。
$url = "Url goes here";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"postcode\":\"3150\", \"customerType\":\"Residential\",\"fuelType\":\"Electricity\"}");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
echo "test";
}
echo "<pre>";
print_r($result);
echo "</pre>";
curl_close($ch);
}
?>
【问题讨论】:
-
你发布元素的值,就像任何其他元素一样。它们是参数。尝试将其与表单部分分开-您不是在使用表单,而是在使用 cURL。表单只是生成 HTTP 请求的一种方式。您要模拟的是表单生成的 HTTP 请求。您可以使用浏览器的开发人员工具查看表单生成的请求,然后您可以编写一些 cURL 以生成相同格式的请求。
-
上面一个非常明显的问题是您试图在单个字符串中提交(转义)JSON,而不是单独的参数。 Curl 将允许您指定单个参数。我认为您还没有了解您使用的数据格式,或者阅读 cURL 文档以了解如何指定各个参数。