我如何使用PHP发送POST请求?

13 浏览
0 Comments

我如何使用PHP发送POST请求?

实际上,我想读取在搜索查询完成后返回的内容。问题在于该URL只接受POST方法,而不对GET方法采取任何操作......

我必须通过domdocumentfile_get_contents()的帮助来读取所有内容。是否有任何方法可以让我使用POST方法发送参数,然后通过PHP读取内容?

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以使用 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;
?>

0
0 Comments

使用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手册了解有关此方法及如何添加标头的更多信息,例如:

0