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

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

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

function getPost($url,$vars){

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

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. 关于 cannot create Parameters: [] 报错问题的解决方法

    其实在Sort类中添加无参构造就可以解决 我自己写的是Sort类,其它情况得视你们自己写的类决定 至于为什么也不是很清楚

  2. leetcode 24. 两两交换链表中的节点 及 25. K 个一组翻转链表

    24. 两两交换链表中的节点 问题描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2-> ...

  3. 猫与ThinkPad

    高中时候看见过家里橘猫谁在舅舅的ThinkPad笔记本了,可惜没拍下来,我也不喜欢那只猫,更喜欢幼时的白猫和黑白猫. ThinkPad宣传图片诚不欺我. 怀念青春与当年陪我游戏的IBM的ThinkPa ...

  4. IPV4地址,子网掩码,子网划分

    转载自https://blog.csdn.net/qq_45108415/article/details/114179407

  5. linux下git安装使用新手教程。

    1.进入官网,创建Github帐户,获取git服务. 2.本地安装git客户端,yum install git. 3.生成ssh key,使用命令 "ssh-keygen -t rsa -C ...

  6. 实习之bii--在vsphere client 给esxi上的虚拟机增加U盘识别

    esxi上安装虚拟机默认不包含U盘控制器,在服务器上插U盘也不会识别,所以要通过客户端登陆esxi管理为虚拟机增加U盘控制器,步骤如下: 1.首先登陆服务器的管理ip 2.选择一部虚拟机,进行编辑设置 ...

  7. SpringMVC注解式开发-RequestMapping放到类上

    功能一:请求地址公共部分,模块名称 (放在类) 功能二:

  8. 集合框架-ArrayList集合存储自定义对象

    1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; ...

  9. python内置re模块全面实战

    目录 一:取消转义 二:python内置模块之re模块 三:常用方法 findall search match 简便 四:常用方法 finditer 匹配文件多情况 五:切割 替换 内置模块 六:分组 ...

  10. MySQL OOM

    问题 前几天遇到一个奇怪的问题,服务器内存明明够用,结果在对 MySQL 进行测压的时候却出现了 OOM,是 Linux 内核出错了吗? 具体现象如下:使用 sysbench 对 mysql 进行压测 ...