我如何使用PHP发送POST请求?
我如何使用PHP发送POST请求?
实际上,我想读取在搜索查询完成后返回的内容。问题在于该URL只接受POST
方法,而不对GET
方法采取任何操作......
我必须通过domdocument
或file_get_contents()
的帮助来读取所有内容。是否有任何方法可以让我使用POST
方法发送参数,然后通过PHP
读取内容?
admin 更改状态以发布 2023年5月23日
您可以使用 cURL:
$state, '__EVENTVALIDATION' => $valid, 'btnSubmit' => 'Submit' ]; //url-ify the data for the POST $fields_string = http_build_query($fields); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //So that curl_exec returns the contents of the cURL; rather than echoing it curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); //execute post $result = curl_exec($ch); echo $result; ?>
使用PHP5的非CURL方法:
$url = 'http://server.com/path'; $data = array('key1' => 'value1', 'key2' => 'value2'); // use key 'http' even if you send the request to https://... $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($result === FALSE) { /* Handle error */ } var_dump($result);
请参阅PHP手册了解有关此方法及如何添加标头的更多信息,例如:
- stream_context_create:http://php.net/manual/en/function.stream-context-create.php