zoukankan      html  css  js  c++  java
  • PHP post & get请求

      1 <?php
      2 /**
      3  * HTTP 请求类
      4  */
      5 class HttpHelper {
      6   
      7     const METHOD_GET = 'GET';
      8     const METHOD_POST = 'POST';
      9 
     10     private static $_connectTimeout = 60;
     11     private static $_timeout = 60;
     12     
     13     /**
     14      * Http post请求
     15      * @param type $url  http url address
     16      * @param type $data post params name => value 
     17      */
     18     public static function post($url, $data = array()){
     19         
     20         $queryString = self::buildHttpQueryString($data,  self::METHOD_POST);
     21         
     22         $response = self::makeHttpRequest($url, self::METHOD_POST,$queryString);
     23         return $response;
     24     }
     25     
     26     /**
     27      * http get 请求
     28      * @param type $url  http url address
     29      * @param type $data get params name => value
     30      */
     31     public static function get($url,$data = array()) {
     32         if(!empty($data)){
     33             $url .= "?" . self::buildHttpQueryString($data,  self::METHOD_GET);
     34         }
     35         $response = self::makeHttpRequest($url,  self::METHOD_GET);
     36         return $response;
     37     }
     38     
     39     /**
     40      * 构造并发送一个http请求
     41      * @param type $url
     42      * @param type $method
     43      * @param type $postFields
     44      * @return type
     45      */
     46     public static function makeHttpRequest($url,$method,$postFields = null) {
     47         $ch = curl_init();
     48         curl_setopt($ch, CURLOPT_URL, $url);
     49         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     50         if(self::METHOD_POST == $method){
     51             curl_setopt($ch, CURLOPT_POST, 1);
     52             if(!empty($postFields)){
     53                 curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
     54             }
     55         }
     56         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, self::$_connectTimeout);
     57         curl_setopt($ch, CURLOPT_TIMEOUT, self::$_timeout);
     58         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     59         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
     60         
     61         $result = curl_exec($ch);
     62         curl_close($ch);
     63         return $result;
     64     }
     65     
     66     /**
     67      * 构造http请求的查询字符串
     68      * @param array $params
     69      * @param type $method
     70      * @return string
     71      */
     72     public static function buildHttpQueryString(array $params, $method = self::METHOD_GET) {
     73         if(empty($params)){
     74             return '';
     75         }
     76         if(self::METHOD_GET == $method){
     77             $keys = array_keys($params);
     78             $values = self::urlEncode(array_values($params));
     79             $params = array_combine($keys, $values);
     80         }
     81         
     82         $fields = array();
     83         
     84         foreach ($params as $key => $value) {
     85             $fields[] = $key . '=' . $value;
     86         }
     87         return implode('&',$fields);
     88     }
     89     
     90     /**
     91      * url encode 函数
     92      * @param type $item  数组或者字符串类型
     93      * @return type
     94      */
     95     public static function urlEncode($item) {
     96         if(is_array($item)){
     97             return array_map(array('HttpHelper','urlEncode'), $item);
     98         }
     99         return rawurlencode($item);
    100     }
    101     
    102     /**
    103      * url decode 函数
    104      * @param type $item 数组或者字符串类型
    105      * @return type
    106      */
    107     public static function urlDecode($item){
    108         if(is_array($item)){
    109             return array_map(array('HttpHelper','urlDecode'), $item);
    110         }
    111         return rawurldecode($item);
    112     }
    113 }

    使用方法:

    echo HttpHelper::get('http://www.baidu.com', array('t' => 1));
  • 相关阅读:
    预备作业02-162315马军
    预备作业01-162315马军
    # 2017-2018-1 20155224 《信息安全系统设计基础》第四周学习总结
    # 2017-2018-1 20155224 《信息安全系统设计基础》第3周学习总结
    # 第二周课堂实践以及MyOD
    # 2017-2018-1 20155224 《信息安全系统设计基础》第1周学习总结
    # 20155224 2016-2017-2《Java程序设计》课程总结
    # 20155224 实验五 Java网络编程及安全
    # 20155224 课堂实践 MyOD
    # 20155224 实验四 Android程序设计
  • 原文地址:https://www.cnblogs.com/gouge/p/7109705.html
Copyright © 2011-2022 走看看