YurunHttp v3.1.0,支持 Curl&Swoole 的 HTTP 请求库

栏目: 软件资讯 · 发布时间: 6年前

内容简介:YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。 支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持上传下载、设置和读取 header、Cookie、请求参数、失败重试、限速、代理、证书等。...

YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。

支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持上传下载、设置和读取 header、Cookie、请求参数、失败重试、限速、代理、证书等。

3.x 版完美支持 Curl、Swoole 协程。

我们有完善的在线技术文档:http://doc.yurunsoft.com/YurunHttp

API 文档:https://apidoc.gitee.com/yurunsoft/YurunHttp

Gitee:https://gitee.com/yurunsoft/YurunHttp

Github:https://github.com/Yurunsoft/YurunHttp

git仓库中test目录里是示例代码!

更新日志(v3.1.0):

新增:

  • 新增 CookieManager,用于管理一个实例下的会话。现在同一个HttpRequest类实例,会自动管理 Cookie

  • 增加测试用例(PHP5.4 - PHP7.3)、示例代码

优化:

  • 现在只有状态码为301、302、303,才更改重定向请求方法为 GET

  • 优化 StatusCode 类

  • Swoole 重定向地址的 host、port、scheme 与上一个地址保持一致的话,复用 $client

  • 同一个 HttpRequest 对象重复请求时,Curl 资源不再重新 init

  • Uri->getPort() 不再根据协议自动返回缺省端口
    新增 Uri::getServerPort() 方法获取端口,支持获取缺省

  • Uri::getDomain() 方法改为静态方法

  • 优化 close()、__destruct()

  • Curl CURLOPT_COOKIEJAR 默认值改为 php://memory,不再写入文件

  • 优化 Curl header 处理性能

修复:

  • 修复 Swoole Handler Host 不带端口号问题

Composer

本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json 中加入下面的内容

{
    "require": {
        "yurunsoft/yurun-http": "~3.1"
    }
}

然后执行 composer update 安装。

之后你便可以使用 include "vendor/autoload.php"; 来自动加载类。(ps:不要忘了namespace)

用法

简单调用

<?php
use Yurun\Util\HttpRequest;

$http = new HttpRequest;
$response = $http->ua('YurunHttp')
                 ->get('http://www.baidu.com');

echo 'html:', PHP_EOL, $response->body();

PSR-7 请求构建

<?php
use Yurun\Util\YurunHttp\Http\Request;
use Yurun\Util\YurunHttp;

$url = 'http://www.baidu.com';

// 构造方法定义:__construct($uri = null, array $headers = [], $body = '', $method = RequestMethod::GET, $version = '1.1', array $server = [], array $cookies = [], array $files = [])
$request = new Request($url);

// 发送请求并获取结果
$response = YurunHttp::send($request);

var_dump($response);

Swoole 协程模式

<?php
use Yurun\Util\YurunHttp;
use Yurun\Util\HttpRequest;

// 设置默认请求处理器为 Swoole
YurunHttp::setDefaultHandler('Yurun\Util\YurunHttp\Handler\Swoole'); // php 5.4
// YurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class); // php 5.5+

// Swoole 处理器必须在协程中调用
go('test');

function test()
{
    $http = new HttpRequest;
    $response = $http->get('http://www.baidu.com');
    echo 'html:', PHP_EOL, $response->body();
}

具体详见examples目录中的示例代码


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Programming in Java

Introduction to Programming in Java

Robert Sedgewick、Kevin Wayne / Addison-Wesley / 2007-7-27 / USD 89.00

By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and appli......一起来看看 《Introduction to Programming in Java》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具