Laravel访问外网接口

1.curl

/**

* CURL请求

*

* @param $url

* @param bool $params

* @param int $ispost

* @param int $https

* @return bool|mixed

*/

public static function curl($url, $params = false, $ispost = 0, $https = 0)

{

    $httpInfo = array();

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

    curl_setopt($ch, CURLOPT_USERAGENT, '');

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

    curl_setopt($ch, CURLOPT_TIMEOUT, 30);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    if ($https) {

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在

    }

    if ($ispost) {

        curl_setopt($ch, CURLOPT_POST, true);

        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

        curl_setopt($ch, CURLOPT_URL, $url);

    } else {

        if ($params) {

            if (is_array($params)) {

                $params = http_build_query($params);

            }

            curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);

        } else {

            curl_setopt($ch, CURLOPT_URL, $url);

        }

}

    $response = curl_exec($ch);

    if ($response === FALSE) {

        //echo "cURL Error: " . curl_error($ch);

        return false;

    }

    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));

    curl_close($ch);

    return $response;

}

2.GuzzleHttpService

官网中文文档   http://guzzle-cn.readthedocs.io/zh_CN/latest/index.html

引入安装

在composer.json文件的“require”项中加入

"guzzlehttp/guzzle": "^6.3",

然后命令行执行composer install

项目中的用法     

新建一个GuzzleHttpClient类   在类中写一个可以调用的方法

示例

在项目中需要调用的地方直接传入参数调用就可以啦

你可能感兴趣的:(Laravel访问外网接口)