zoukankan      html  css  js  c++  java
  • PHP Curl请求Https接口

    在请求http的时候只需要

    file_get_contents("http://www.sojson.com/open/api/weather/json.shtml?city=$Position");
    就可以了,但是发现这个接口现在变成了https协议了
    还用这种方法就会403
    首先看看PHP有没有curl扩展,我是7.2

    我用的是Laravel社区的封装好的方法

     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, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
            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; }



    // 发送请求
    $result = self::curl('网址', '参数', true);
    // 收到的数据需要转化一下
    $json = json_decode($result);

    我的用法是,应为我调用的是天气预报的接口
    $result= Curl::curl($url,"city=北京");
     
  • 相关阅读:
    大三学习进度55
    大三学习进度56
    深入理解Java:注解(Annotation)自定义注解入门
    Django2实战示例 第三章 扩展博客功能
    Django2实战示例 第二章 增强博客功能
    12月07日总结观影数据集之大数据分析数据清洗
    12月06日总结
    12月04日阅读笔记
    12月03日总结
    12月05日总结
  • 原文地址:https://www.cnblogs.com/wlphp/p/8600945.html
Copyright © 2011-2022 走看看