原生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);

  

 

posted @ 2021-07-06 16:42  ruclouds  阅读(285)  评论(0)    收藏  举报