juliangut/spiral

一个支持PSR7的cURL客户端

0.4 2017-06-03 15:19 UTC

This package is auto-updated.

Last update: 2024-09-15 11:33:48 UTC


README

PHP version Latest Version License

Build Status Style Check Code Quality Code Coverage

Total Downloads Monthly Downloads

支持PSR7的cURL客户端

PSR7兼容的cURL客户端。

使用PSR7请求和响应对象通过cURL执行HTTP请求。

安装

最佳安装方式是使用Composer

composer require juliangut/spiral

然后包含自动加载文件

require_once './vendor/autoload.php';

用法

use Jgut\Spiral\Client;

// Create Spiral cURL client
$spiralClient = new Client;

// Create \Psr\Http\Message\RequestInterface request and configure it
$request = new PSR7RequestImplementation();

// Perform the request providing an empty \Psr\Http\Message\ResponseInterface response object to be populated
$response = $spiralClient->request($request, new PSR7ResponseImplementation());

// Use response
$headers = $response->getHeaders();
$content = (string) $response->getBody();

传输

您可以创建一个空的cURL传输对象,稍后设置其选项

$transport = new Curl;

$spiralClient = new Client($transport);

或者您可以从默认值创建传输对象

$transport = Curl::createFromDefaults();

$spiralClient = new Client($transport);

如果未向 Jgut\Spiral\Client 构造函数方法提供传输对象,则将由 Jgut\Spiral\Transport\Curl::createFromDefaults 创建一个

选项

传输对象接受cURL选项

use Jgut\Spiral\Transport\Curl;
use Jgut\Spiral\Option\ConnectTimeout;

// Create Spiral cURL client
$transport = new Curl;

// Set option explicitly
$transport->setOption(new ConnectTimeout(10));

// Set by cURL constant
$transport->setOption(CURLOPT_CONNECTTIMEOUT, 10);

// Set using an alias
$transport->setOption('connect_timeout', 10);

保留选项

一些选项是保留的,无法使用 setOption 方法添加到传输对象中。其中一些是通过从请求对象提取相关数据来设置的。

以下是传输对象自动处理的一些选项列表

  • CURLOPT_NOBODY
  • CURLOPT_HTTPGET
  • CURLOPT_POST
  • CURLOPT_CUSTOMREQUEST
  • CURLOPT_URL
  • CURLOPT_POSTFIELDS
  • CURLOPT_HTTPHEADER

可用选项

查看 Jgut\Spiral\Option\OptionFactory 获取可用别名的完整列表

贡献

发现了错误或有功能请求? 请创建一个新问题。在提交之前先查看现有问题

参见文件 CONTRIBUTING.md

许可证

在BSD-3-Clause许可证下发布。

有关许可证条款的副本,请参阅随源代码提供的文件 LICENSE