原生PHP发送http请求
1、GET请求
$host = "https://ali-deliver.showapi.com";
$path = "/fetchCom";
$method = "GET";
$appcode = "apicode";
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
$querys = "nu=快递单号";
$bodys = "";
$url = $host . $path . "?" . $querys;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$".$host, "https://"))
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
var_dump(curl_exec($curl));
2.发送json格式数据,请求地址:https
1.发送json格式数据,请求地址:https
protected function https_request($url,$data=null){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//下面这行是修改后增加的代码,就是配置设置host访问,发送的数据类型为application/json
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data)
));
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
3、 发送json格式数据,请求地址:http
protected function curlPost($Url, $data){
$ch = curl_init($Url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//$data JSON类型字符串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
$result = curl_exec($ch);
curl_close ( $ch );
return $result;
}
4、表单式提交
$url = "http://jisutqybmf.market.alicloudapi.com/weather/query";
$data= "appcode=&appid=";
$options=array(
'http'=>array(
'method'=>'POST',
'header'=>'Content-type:application/x-www-form-urlencoded',
'content'=>$data,
'timeout'=> 15 * 60// 超时时间(单位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url,true,$context);
var_dump($result);

浙公网安备 33010602011771号