服务端CURL请求
服务端与服务端之间,也存在接口编程。
比如我们网站服务端,需要发送短信、发送邮件、查询快递等,都需要调用第三方平台的接口。
1、php中发送请求
①file_get_contents函数 :传递完整的url参数 通常是get请求,有返回值(地址中的输出)
②curl请求方式(PHP的curl函数库):php中比较规范的一种发送请求方式。
2、CURL函数库
Curl函数库的使用流程:
①使用curl_init初始化请求会话
②使用curl_setopt设置请求一些选项
③使用curl_exec执行,发送请求
④使用curl_close关闭请求会话
3、封装请求函数
使用curl函数库的前提:
①在php.ini中开启php_curl扩展(必须开启)

②建议在php.ini中开启php_openssl扩展(本身不是curl必须的,是调用一些第三方接口需要的)
③如果以上操作重启apache后,curl还是不能使用,需要将php安装目录设置到环境变量。
代码封装:
if(!function_exists('curl_request')){
//发送curl请求
function curl_request($url, $type = false, $params = [], $https=false)
{
//调用curl_init() 初始化请求
$ch = curl_init($url);
//调用curl_setopt()设置请求选项
if($type){
//true 发送post请求 false 默认发送get请求
//post请求 设置请求方式
curl_setopt($ch, CURLOPT_POST, true);
//设置请求参数
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
}
//如果是https请求 需要禁止从服务器端验证本地的证书
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
//调用curl_exec() 发送请求 获取结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
// if(!$res){
// //错误信息
// $error = curl_error($ch);
// //错误码
// $errno = curl_errno($ch);
// }
//调用curl_close() 关闭请求
curl_close($ch);
return $res;
}
}
服务端CURL请求的更多相关文章
- Query通过Ajax向PHP服务端发送请求并返回JSON数据
Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...
- Request对象 --web浏览器向web服务端的请求
一]Request对象常用方法 1)StringBuffer getRequestURL() url表示访问web应用的完整路径 2)Stri ...
- jQuery通过Ajax向PHP服务端发送请求并返回JSON数据
SON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教 ...
- fastHttp服务端处理请求的过程
Github 地址 https://github.com/valyala/fasthttp fastHttp 服务端的处理请求的过程 工作过程 主要代码 设置监听地址 server.go func ( ...
- 基于jFinal建立简单的服务端-接收请求并返回指定内容
本菜鸡是一名弱弱的测试工程师,最近完成了一个支付相关的项目,项目工作中,需要建立一个模拟支付宝的网关,主要是接收请求并返回数据.作为一名没有丝毫开发经验的菜鸡,初期入门相当费劲,主要还是思维上的转变. ...
- Visual Studio 2015 Bowser Link的功能不停的向服务端发送请求
Visual Studio 2015新建的mvc项目 默认在每个视图上生成一些JavaScript脚本
- 在java服务端判断请求是来自哪个终端
在servlet中,我们可以获取到HttpServletRequest,然后通过HttpServletRequest的getHeader("User-Agent")方法获取请求头中 ...
- ajax对服务端发送请求
//兼容处理获取ajax对象 var req = ''; if (window.XMLHttpRequest) req = new XMLHttpRequest(); else req = ...
- nextjs 服务端渲染请求参数
Post.getInitialProps = async function (context) { const { id } = context.query const res = await fet ...
随机推荐
- oracle如何加固你的数据库
要注意以下方面 1. 修改sys, system的口令. 2. Lock,修改,删除默认用户: dbsnmp,ctxsys等. 3. 把REMOTE_OS_AUTHENT改成False,防止远程机器直 ...
- Python中if __name__ == '__main__':理解
在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在python编 ...
- 分享 KubeCon 2019 (上海)关于 Serverless 及 Knative 相关演讲会议
有幸参加了 KubeCon 2019 上海大会,并参加了 Knative 及 Serverless 相关的几场分享会,收获满满.这里简单介绍一下各个演讲主题的主要内容.详细的演讲主题文档可以在Kube ...
- Android中解析Json数据
在开发中常常会遇到解析json的问题 在这里总结几种解析的方式: 方式一: json数据: private String jsonData = "[{\"name\":\ ...
- 为什么不喜欢在 QQ 群里回答问题?
为什么不喜欢在 QQ 群里回答问题? 没有主题,主题随时都在变. 回答后无法备份,当然自己有心可以总结一下. 实时性要求太强,可能回答但是突然有事离开,再回头看已经是 几十条的留言. QQ 群用来闲聊 ...
- @atcoder - AGC040C@ Neither AB nor BA
目录 @description@ @solution@ @accepted code@ @detail@ @description@ 给定偶数 N,求由 'A', 'B', 'C' 三种字符组成的字符 ...
- MySQL按天,按周,按月,按时间段统计【转载】
自己做过MySQL按天,按周,按月,按时间段统计,但是不怎么满意,后来找到这位大神的博客,转载一下,谢谢这位博主的分享 知识点:DATE_FORMAT 使用示例 select DATE_FORMAT( ...
- 远程监控JVM
设置tomcat中catalina.sh设置JAVA_OPTS= JAVA_OPTS="-server -Xms595M -Xmx595M -Xmn223M -XX:SurvivorRati ...
- Java中Map/List/Set .
很实用,分享一下. 简单版本 复杂版本 参考: http://initbinder.com/articles/cheat-sheet-for-selecting-maplistset-in-java. ...
- H3C TCP与UDP的对比