php 常用get post http请求

  1 /**
  2      * http-GET
  3      * 
  4      */
  5     $url = "https://www.baidu.com";
  6     $params = [
  7         "uid"   =>  $_REQUEST["uid"],
  8         "token" =>  $_REQUEST["token"],
  9     ];
 10     $result = file_get_contents($url);
 11 
 12     function curl_file_get_contents($url){
 13         $ch = curl_init();
 14         curl_setopt($ch, CURLOPT_URL, $url);
 15         curl_setopt($ch, CURLOPT_TIMEOUT, 5);
 16         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 17         $res = curl_exec($ch);
 18         curl_close($ch);
 19         return $res;
 20     }
 21     $result = curl_file_get_contents($url);
 22 
 23     /**
 24      * http-POST
 25      * 
 26      */
 27     function http_post($url, $data) {
 28         $postdata = http_build_query($data);
 29         $options = [
 30             'http' => [
 31                 'method' => 'POST',
 32                 'header' => 'Content-type:application/x-www-form-urlencoded',
 33                 'content' => $postdata,
 34                 'timeout' => 15 * 60
 35             ]
 36         ];
 37         $context = stream_context_create($options);
 38         $result = file_get_contents($url, false, $context);
 39         return $result;
 40     }
 41 
 42     function http_post2($url, $data) {
 43         $ch = curl_init();
 44         curl_setopt($ch, CURLOPT_POST, 1);
 45         curl_setopt($ch, CURLOPT_URL, $url);
 46         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 47         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 48         curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 49             'Content-Type: application/json; charset=utf-8',  
 50             'Content-Length:' . strlen($data))
 51         );
 52         $return_content = curl_exec($ch);
 53         curl_close($ch);
 54         return $return_content;
 55     }
 56 
 57     
 58     $head = [];
 59     $head[] = 'Timestamp:'.'1600000000';
 60     $head[] = 'Nonce:'.'Nonce';
 61     $head[] = 'Signature:'.'Signature';
 62     $head[] = 'Content-Type:text/plain;charset=utf-8';
 63     // $head[] = 'Content-Type: application/json';
 64     /**自定义header头信息 */
 65     function http_post3($url, $data, $header)
 66     {
 67         $curl = curl_init();
 68         curl_setopt($curl, CURLOPT_URL, $url);
 69         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
 70         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
 71         curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
 72         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
 73         curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
 74         curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
 75         curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
 76         curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
 77         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 78         curl_setopt($curl, CURLOPT_HTTPHEADER, $header);//设置自定义header头信息
 79         $res = curl_exec($curl); // 执行操作
 80         if (curl_errno($curl)) {
 81             echo 'Errno'.curl_error($curl);//捕抓异常
 82         }
 83         curl_close($curl); // 关闭CURL会话
 84         return $res; // 返回数据,json格式
 85     }
 86 
 87     function http_post4($url, $data, $header){
 88         $postdata = http_build_query($data);
 89         $opts = array('http' =>
 90             array(
 91                 'method'  => 'POST',
 92                 'header'  => $header,
 93                 'content' => $postdata,
 94                 'timeout' => 30
 95             )
 96         );
 97         $context = stream_context_create($opts);
 98         $result = file_get_contents($url, false, $context);
 99         return $result;
100     }
101 
102     function http_post5($url, $data, $headers){
103         $ch = curl_init();
104         curl_setopt($ch,CURLOPT_URL,$url);
105         if(!empty($headers)){
106             curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
107         }
108         curl_setopt($ch, CURLOPT_POST, 1);
109         /**http_build_query 吧请求的数据转换成 k=v&k2=v2 发送请求*/
110         curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
111         curl_setopt($ch, CURLOPT_TIMEOUT, 5);
112         curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
113         curl_setopt($ch, CURLOPT_HEADER,0);//如果想把一个头包含在输出中,设置这个选项为一个非零值。
114         curl_setopt($ch, CURLINFO_HEADER_OUT,1);
115         $json = curl_exec($ch);
116         curl_close($ch);
117         return $json;
118     }
 1 /**其他*****/
 2     /**
 3      * 获取url
 4      */
 5     function get_app_url(){
 6         $scheme = $_SERVER['REQUEST_SCHEME']; //协议
 7         $domain = $_SERVER['HTTP_HOST']; //域名/主机
 8         $requestUri = $_SERVER['REQUEST_URI']; //请求参数
 9         $getUrl = $scheme . "://" . $domain . $requestUri;
10         return $getUrl;
11     }
12 
13     /**
14      * 跳转指定url
15      * 
16      */
17     header("Location:https://www.baidu.com");
18 
19     /**
20      * 是否支持https判断
21      */
22     function is_https()
23     {
24         if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
25         {
26             return TRUE;
27         }
28         elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
29         {
30             return TRUE;
31         }
32         elseif (!empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off')
33         {
34             return TRUE;
35         }
36         return FALSE;
37     }

 

posted @ 2020-11-06 11:10  Evengod  阅读(1333)  评论(0编辑  收藏  举报