PHP的post请求

``` <?php
/***************************************************************************************************

  • File Description:
  • 用curl的方式的访问远程端口
  • curlGet : 用get的方式访问远程的接口返回json串
  • curlPost:用post的方式的进行访问远程接口返回的是json串
  • http: 通过参数校验来判断是post还是get提交
    ***************************************************************************************************/

class Http_curl
{
/**
* @param $url 访问的URL参数拼接在url后面
* @return bool|string 返回json字符串
*/
function curlGet($url)
{

    if (!isset($url)) {
        return "您的参数不合法,请检查";
    }
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    //是否返回http头部1表示返回头部0表示不返回头部
    curl_setopt($curl, CURLOPT_HEADER, 0);
    //如果1时候如果成功就返回true并且返回相应的值,返回数据不直接输出。0不主动返回值,
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 这个是主要参数
    $curl_response = curl_exec($curl);
    if ($curl_response == false) {
        echo "错误信息:" . curl_error($curl);
    }
    //可以获取具体的信息
    //$curl_data = curl_getinfo($curl)['name'];
    curl_close($curl);

    return json_encode($curl_response);

}


/**
 * @param $post_array    post参数数组
 * @param $url           访问的url
 * @return bool|string 返回json字符串
 */
function curlPost($post_array, $url)
{
    if (!isset($post_array, $url)) {
        return "您的参数不合法,请检查";
    }
    $curl = curl_init();
    //是否返回http头部1表示返回头部0表示不返回头部
    curl_setopt($curl, CURLOPT_HEADER, 0);
    //如果1时候如果成功就返回true并且返回相应的值,返回数据不直接输出。0不主动返回值,
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 这个是主要参数
    // 这个是主要参数
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    //设置请求为POST
    curl_setopt($curl, CURLOPT_POST, 1);
    //设置post参数
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_array);
    //返回数据
    $curl_response = curl_exec($curl);

    if ($curl_response == false) {
        return "错误信息:" . curl_error($curl);
    }
    curl_close($curl);

    return json_encode($curl_response);

}

/**
 * post提交和get提交的url的集合
 * @param $method     提交方式:post,get方法
 * @param $url        访问的url
 * @param data[] 参数数组,如果是post提交的时候该字段必输
 * @return bool|string 返回json字符串
 */
function http($url, $method = 'get', $data = [])
{

    // Log::xdebug("wechat service http url: $url");

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);

    if ($method == 'post') {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }

    $content = curl_exec($ch);
    $error = curl_error($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    return $content;
}

} ```

猜你喜欢

转载自www.cnblogs.com/wuyongsheng/p/9224634.html
今日推荐