CURL访问举例
<?php
function request($url, $params = [], $requestMethod = 'GET', $jsonDecode = true, $headers = [])
{
$ci = curl_init();
curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ci, CURLOPT_USERAGENT, '1001 Magazine v1');
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ci, CURLOPT_TIMEOUT, 10);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_ENCODING, "");
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ci, CURLOPT_HEADER, FALSE); $requestMethod = strtoupper($requestMethod);
switch ($requestMethod) {
case 'POST':
curl_setopt($ci, CURLOPT_POST, TRUE);
if ($params) {
curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
} else {
curl_setopt($ci, CURLOPT_POSTFIELDS, ''); // Don't know why: if not set, 413 Request Entity Too Large
}
break;
case 'DELETE':
curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
if ($params) {
$url = $url."?".$params;
}
break;
case 'GET':
if ($params) {
$sep = false === strpos($url, '?') ? '?' : '&';
$url .= $sep . http_build_query($params);
}
break;
case 'PUT':
if ($params) {
curl_setopt($ci, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
}
break;
}
//$headers[] = "APIWWW: " . $_SERVER['REMOTE_ADDR'];
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE); $response = curl_exec($ci);
$httpCode = curl_getinfo($ci, CURLINFO_HTTP_CODE);
$return = [
'httpcode' => $httpCode,
'data' => $httpCode >= 300 ? $response : ($jsonDecode ? json_decode($response, true) : $response),
'response' => $response
];
//$httpInfo = curl_getinfo($ci);
curl_close($ci);
return $return;
} $res = request('http://www.che168.com/Handler/ScriptCarList_V1.ashx?needData=1',[],'GET',false); ?>
CURL访问举例的更多相关文章
- 在linux下使用curl访问 多参数url GET参数问题
一.在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本.每一小时执行myscript.php如下: # ...
- centos7内核升级及curl访问https证书过期处理
centos7内核升级及curl访问https证书过期处理 先看下当前系统的linux内核版本 uname -r 3.10.0-229.el7.x86_64 升级步骤 1.rpm --import h ...
- linux下通过curl访问web服务器
在通过xshell或者其他远程连接工具连接linux服务器,没安装浏览器,却要测试web服务的请求: 可以使用curl 访问web服务器 例如返回百度的主页内容 #curl www.baidu.com ...
- docker 部署net core程序 curl访问地址 提示 Connection reset by peer
最近研究netcore 部署到docker上.在参考https://www.cnblogs.com/subendong/p/8992285.html教程之后,部署成功.但是curl访问对应的主机端口地 ...
- cURL 学习笔记与总结(5)用 cURL 访问 HTTPS 资源
<?php $curlobj = curl_init(); // 初始化 curl_setopt($curlobj, CURLOPT_URL, "https://ajax.aspnet ...
- PHP CURL访问HTTPS使用详解
三年前写过一篇<一个简陋的支持HTTPS的PHP CURL封装函数>,当时只是知其然不知其所以然,今天来详细梳理一下. https服务器post数据 代码如下 复制代码 function ...
- 用curl访问HTTPS站点并登录
开发网站,少不了测试.现在的网站为了加强安全性,都启用了HTTPS协议.所谓HTTPS,也就是HTTP文本在SSL协议中传输.用curl命令行来测试HTTPS站点是个很有用的功能,写点脚本,就可以做功 ...
- CURL访问url显示响应时间
curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} http://www.baidu.com 时间指 ...
- [PHP] curl访问https与CA证书问题
CA证书,用来在调用HTTPS资源的时候,验证对方网站是否是CA颁布的证书,而不是自己随便生成的 curl命令1.需要下载CA证书 文件地址是 http://curl.haxx.se/ca/cacer ...
随机推荐
- Android app与PC端交互
app提交信息到PC端mysql数据库 新建名为SignActivity package com.example.administrator.success; import android.app.A ...
- Zookeeper启动Permission denied
Zookeeper 查询状态,出现如下问题: JMX enabled by default Using config: /usr/zookeeper/zookeeper-/bin/../conf/zo ...
- [原创]java WEB学习笔记18:java EE 中的MVC 设计模式(理论)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- day 5 模块导入、常用模块os shutil sys commands subprocess hashlib json pickle zipfile traceback random datetime
os: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os. ...
- nginx expires缓存提升网站负载
语法: expires [time|epoch|max|off]默认值: expires off作用域: http, server, location使用本指令可以控制HTTP应答中的“Expires ...
- JS获取内联样式
JS获取内联样式 //获取内联样式 function getCss(obj,attr){//obj:对象,name:style属性 if(obj.currentStyle) { return obj. ...
- 模拟C#的事件处理和属性语法糖
1. [代码]SharpEvent.hpp /* * SharpEvent.hpp * * Created on: 2014-5-5 * Author: leoking * Copyr ...
- httpRequest.CookieContainer= cookie 与 httpRequest.Headers.Add("Cookie", cookie)
这两天做了一个获取cookie并且携带此cookie去请求另外一个url地址,中间携带cookie用了两种方式:1. httpRequest.CookieContainer= cookie (此coo ...
- Git之Eclipse提交项目到Github并实现多人协作
一.Eclipece提交项目到Github 见 eclipse提交项目到github 二.利用github组织实现多人协作 1.新建组织: New organization
- ADO:连接,执行语句与关闭(sql server数据库)
一,身份验证: sql server数据库连接身份验证有两种:windows身份验证和SQL Server身份验证 windows验证:是使用windows的安全子系统对用户连接进行有效性验证.(个人 ...