为了账号安全,请及时绑定邮箱和手机立即绑定

如何用PHP发送POST请求?

如何用PHP发送POST请求?

PHP
四季花海 2019-05-31 17:11:19
如何用PHP发送POST请求?实际上,我想阅读搜索查询完成后的内容。问题是URL只接受POST方法,并且它不采取任何与GET方法.。我必须在以下的帮助下阅读所有的内容domdocument或file_get_contents()..有什么方法可以让我用POST方法,然后通过PHP?
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

你可以用卷发:


<?php

//The url you wish to send the POST request to

$url = $file_name;


//The data you want to send via POST

$fields = [

    '__VIEWSTATE '      => $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;

?>


查看完整回答
反对 回复 2019-05-31
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我使用以下函数使用curl发布数据。$data是要发布的字段数组(将使用http_build_query正确编码)。数据是使用application/x-www-form-urlencode编码的。

function httpPost($url, $data){
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;}

@Edward提到,可以省略http_Build_Query,因为curl将正确地编码传递给CURLOPT_POSTFIES参数的数组,但请注意,在这种情况下,数据将使用多部分/表单-数据进行编码。

我在API中使用这个函数,这些API期望使用application/x-www-form-urlencode对数据进行编码。这就是为什么我使用http_build_query()。


查看完整回答
反对 回复 2019-05-31
  • 3 回答
  • 0 关注
  • 1418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信