php 处理 http 请求,PHP的http请求处理类
* @version $Id$
*/
class cls_http_request
{
/**
* get方式请求(curl)
*
* @param string $url 请求的url
* @param integer $timeout 超时时间(s)
* @return string(请求成功) | false(请求失败)
*/
public static function curl_get($url, $timeout = 1)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
if (is_string($result) && strlen($result))
{
return $result;
}
else
{
return false;
}
}
/**
* post方式请求
*
* @param string $url 请求的url
* @param array $data 请求的参数数组(关联数组)
* @param integer $timeout 超时时间(s)
* @return string(请求成功) | false(请求失败)
*/
public static function curl_post($url, $data, $timeout = 2)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
if (is_string($result) && strlen($result))
{
return $result;
}
else
{
return false;
}
}
/**
* 多个url并行请求
*
* @param array $urls url数组
* @param integer $timeout 超时时间(s)
* @return array $res 返回结果
*/
public static function curl_get_urls($urls, $timeout = 1)
{
$mh=curl_multi_init();
$chs=array();
foreach($urls as $url)
{
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
curl_multi_add_handle($mh,$ch);
$chs[]=$ch;
}
$active=null;
do {
$mrc=curl_multi_exec($mh,$active);
}while($mrc == CURLM_CALL_MULTI_PERFORM);
while($active && $mrc == CURLM_OK)
{
if(curl_multi_select($mh) != -1)
{
do{
$mrc=curl_multi_exec($mh,$active);
}while($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
$res=array();
foreach($chs as $ch)
{
$res[]=curl_multi_getcontent($ch);
curl_multi_remove_handle($mh,$ch);
}
curl_multi_close($mh);
return $res;
}
}
php 处理 http 请求,PHP的http请求处理类相关推荐
- HTTP请求上下文之终结:HttpContext类
在处理请求执行链的各个阶段中,会有一个对象在各个对象之间进行传递,也即会保存请求的上下文信息,这个对象就是HttpContext对象.HttpContext粉状了ASP.NET要处理的单次请求的所有信 ...
- spring MVC请求处理类注解属性详解
spring MVC请求处理类注解属性详解
- Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装
阅读目录 1. 通过HttpServletRequest获得请求参数和数据 2. 处理方法形参名==请求参数名 3. 如果形参名跟请求参数名不一样怎么办呢?用@RequestParam注解 4. 用实 ...
- springboot处理参数再转发请求_Springboot 2.0---WebFlux请求处理流程
笔记是学习了小马哥在慕课网的课程的<Spring Boot 2.0深度实践之核心技术篇>的内容结合自己的需要和理解做的笔记. 前言 在了解了WebFlux核心组件之后,我们就该了解相应的请 ...
- RxHttp 一条链发送请求之强大的Param类(三)
简介 前面我们对RxHttp做了整体的介绍,我们知道,使用RxHttp库发送请求,有两种方式.一种通过Param+HttpSender的形式,另外一种是直接使用RxHttp类,而RxHttp类内部其实 ...
- java http请求 工具类_java模拟http请求调用远程接口工具类
package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...
- 网络请求以及网络请求下载图片的工具类 android开发java工具类
2019独角兽企业重金招聘Python工程师标准>>> package cc.jiusan.www.utils;import org.apache.http.HttpEntity; ...
- 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册
阿里云短信Demo演示 一.前端部分 无前端. 二.后端部分 1.创建发送短信测试模块SmsSendDemo,不用使用骨架. 2.在pom文件中引入依赖坐标 <dependency>< ...
- SpringCloud请求异常处理封装BusinessException自定义异常类
文章目录 请求异常处理 1 异常信息格式 2 异常处理流程 3 自定义业务异常类 4 自定义业务异常处理器 5 抛出自定义异常 请求异常处理 1 异常信息格式 系统在交互中难免会有异常发生,前端为了解 ...
最新文章
- debian手动安装java两种方法
- 技术剖析 | Axonius为什么能获得 2019 RSAC创新大奖
- Coolite Cool Study 3 MVC + Coolite 的例子
- epoll 的accept , read, write
- 通过rsync清除目录的shell脚本
- 你当真了解count(*)count(id)count(1)吗?
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- gerber文件怎么导贴片坐标_SMT贴片机在线编程调试
- 三层架构(我的理解及具体分析)
- EasyPR 环境配置
- 西安电子科技大学-随机信号分析大作业
- 在禁用UAC时无法激活此应用
- java 枚举类使用反射
- 新型智慧城市投融资经验分享
- 大学英语综合教程三 Unit 7 课文内容英译中 中英翻译
- h5文件格式数据集制作
- linux-逻辑卷管理
- 怎么用快捷键快速切换电脑
- 我幼儿园的弟看了都直呼简单的【栈和队列】
- Shopee店铺没有流量?3步教你如何诊断店铺
热门文章
- Cloudera maneger登录页面后的操作是什么?
- Leet Code OJ 2. Add Two Numbers [Difficulty: Medium]
- python生物数据分析师职业技能_数据分析行业各个职业需要的技能是什么?
- SpringBoot的@SpringBootApplication注解和其他几个注解
- Effective Java之用接口模拟可伸缩的枚举(三十四)
- 01.elasticsearch-mapping全面解析
- Paas是什么——Go语言相关学习笔记
- 统一过程(UP)定义了初启阶段、精化阶段、构建阶段、移交阶段和产生阶段,每个阶段以达到某个里程碑时结束,其中()的里程碑是生命周期架构。 A.初启阶段 B.精化阶段 C.构建阶段 D.移交阶段
- 远程图片保存到服务器 php,保存远程图片到本地服务器几种方法[php,asp]网
- opengl三维图形绘制_Python matplotlib绘图示例 - 绘制三维图形