CURL请求,支持GET和POST两种方式,默认为GET方式,如果传第二个参数则为POST方式请求,设置了超时时间,避免程序卡死。

  1. /**
  2. 使用curl方式实现get或post请求
  3. @param $url 请求的url地址
  4. @param $data 发送的post数据 如果为空则为get方式请求
  5. return 请求后获取到的数据
  6. */
  7. function curlRequest($url,$data = ''){
  8. $ch = curl_init();
  9. $params[CURLOPT_URL] = $url; //请求url地址
  10. $params[CURLOPT_HEADER] = false; //是否返回响应头信息
  11. $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
  12. $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
  13. $params[CURLOPT_TIMEOUT] = 30; //超时时间
  14. if(!empty($data)){
  15. $params[CURLOPT_POST] = true;
  16. $params[CURLOPT_POSTFIELDS] = $data;
  17. }
  18. $params[CURLOPT_SSL_VERIFYPEER] = false;//请求https时设置,还有其他解决方案
  19. $params[CURLOPT_SSL_VERIFYHOST] = false;//请求https时,其他方案查看其他博文
  20. curl_setopt_array($ch, $params); //传入curl参数
  21. $content = curl_exec($ch); //执行
  22. curl_close($ch); //关闭连接
  23. return $content;
  24. }

对于某些服务器可能会遇到不兼容的情况,需要将数据拼装成字符串进行发送,可以使用如下函数:

  1. function getPost($url,$vars){
  2. $ch = curl_init();
  3. $params[CURLOPT_URL] = $url; //请求url地址
  4. $params[CURLOPT_HEADER] = false; //是否返回响应头信息
  5. $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
  6. $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
  7. $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
  8. $postfields = '';
  9. foreach ($vars as $key => $value){
  10. $postfields .= urlencode($key) . '=' . urlencode($value) . '&';
  11. }
  12. $params[CURLOPT_POST] = true;
  13. $params[CURLOPT_POSTFIELDS] = $postfields;
  14. //解决方案一 禁用证书验证
  15. $params[CURLOPT_SSL_VERIFYPEER] = false;
  16. $params[CURLOPT_SSL_VERIFYHOST] = false;
  17. curl_setopt_array($ch, $params); //传入curl参数
  18. return curl_exec($ch); //执行
  19. }

php使用CURL实现GET和POST方式请求的更多相关文章

  1. 使用CURL实现GET和POST方式请求

    /** 使用curl方式实现get或post请求@param $url 请求的url地址@param $data 发送的post数据 如果为空则为get方式请求return 请求后获取到的数据 */f ...

  2. PHP:CURL分别以GET、POST方式请求HTTPS协议接口api

    1.curl以GET方式请求https协议接口 //注意:这里的$url已经包含参数了,不带参数你自己处理哦GET很简单 function curl_get_https($url){ $curl = ...

  3. PHP函数CURL分别以GET、POST方式请求HTTPS协议接口api

    1.curl以GET方式请求https协议接口 function curl_get_https($url){ $curl = curl_init(); // 启动一个CURL会话 curl_setop ...

  4. PHP:CURL分别以GET、POST方式请求HTTPS协议接口api【转】

    1.curl以GET方式请求https协议接口 //注意:这里的$url已经包含参数了,不带参数你自己处理哦GET很简单 function curl_get_https($url){ $curl = ...

  5. PHP----------用curl方式请求接口在同一个项目里面的时候不能请求的情况

    1.环境是wnmp 2.NGINX中,看PHP文件块fastcig-pass的设置值(127.0.0.1:9000).设置都是以keepalive方式请求,接收到PHP文件时,交于后端过程PHPCGI ...

  6. php curl 发起get和post网络请求

    curl介绍 curl是一个开源的网络链接库,支持http, https, ftp, gopher, telnet, dict, file, and ldap 协议.之前均益介绍了python版本的p ...

  7. JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...

  8. Ajax-(get/post/jQuery方式请求)

    < !DOCTYPE html > < html xmlns = "http://www.w3.org/1999/xhtml" > < head &g ...

  9. get方式请求会出现中文乱码。post方式不会。

    get方式请求会出现中文乱码.post方式不会.   如果是要解决get方式中文乱码问题,就需要做一个拦截器,或者在web.xml做一个get请求的配置 来自为知笔记(Wiz)

随机推荐

  1. 正则验证&模态框

    在日常生活中,凡是需要表单验证的都会用到正则验证.下面拿一个简单的带有模态框的正则验证的小demo看一下     <style>         /* 遮罩层 */         .ma ...

  2. Windows系统上搭建Clickhouse开发环境

    Windows系统上搭建Clickhouse开发环境 总体思路 微软的开发IDE是很棒的,有两种:Visual Studio 和 VS Code,一个重量级,一个轻量级.近年来VS Code越来越受欢 ...

  3. vue3.0+vite项目搭建

    npm init vite-app <project-name> cd <project-name> 根据控制台的提示执行: npm install / yarn npm ru ...

  4. 动态代理及java演示

    代理模式的理解     首先代理二字的含义,程序中代理与字面意思的代理并无区别.比如现实生活中办理车辆审车,我们经常会听说花钱找代理(又称黄牛)办手续,即办手续这个事,不是我们亲自执行,而是通过代理( ...

  5. 《设计模式面试小炒》策略和工厂模式替代业务场景中复杂的ifelse

    <设计模式面试小炒>策略和工厂模式替代业务场景中复杂的ifelse 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统, ...

  6. 【记录一个问题】linux + opencv + gpu视频解码,好不容易编译通过,运行又coredump了

    1.首先编译了opencv + cuda   编译选项中使用了以下关于cuvid库的内容: //"nvcuvid" libraryCUDA_nvcuvid_LIBRARY:FILE ...

  7. Cesium中文网——如何开发一款地图下载工具[一]

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium中文网的朋友们的其中一个主题是:自己独立开发一款地图 ...

  8. css中设置背景图片适应屏幕

    以body为例 body{ background: url(../img/jld.png) no-repeat center center fixed; -webkit-background-size ...

  9. 什么是协程(第三方模块gevent--内置模块asyncio)

    目录 一:协程 1.什么是协程? 2.携程的作用? 3.安装第三方模块:在命令行下 二:greenlet模块(初级模块,实现了保存状态加切换) 三: gevent模块(协程模块) 1.time 模式协 ...

  10. ORB_SLAM3 + ROS采坑实录(从零开始的毕设生活第一弹)

    ORB-SLAM3配置 https://github.com/UZ-SLAMLab/ORB_SLAM3 https://github.com/shanpenghui/ORB_SLAM3_Fixed E ...