CleanTalk HTTP 请求库

安装次数: 425

依赖关系: 3

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 0

开放性问题: 0

类型:cleantalk-apbct-lib

1.0.0 2022-10-19 07:05 UTC

This package is auto-updated.

Last update: 2024-09-19 11:26:49 UTC


README

CleanTalk

Cleantalk HTTP 请求

独立的 PHP HTTP 请求库

描述

此独立库允许您轻松地使用不同的 HTTP 请求。它可以简单地合并到您的项目中。请参阅“用法”以了解更多信息。

功能

  • POST、GET HTTP 方法。
  • 多请求。
  • 异步请求。
  • 回调函数。
  • 支持 CURL 选项。
  • 上述功能的任意组合。

用法

通过使用 PSR-0(自动加载)或直接使用“include”指令将文件包含到您的项目中下载。使用以下代码使用请求

$request = new Cleantalk\Common\HTTP\Request();
$request_result = $request
    ->setUrl('example.com')
    ->setData(['foo' => 'bar']])
    ->setPresets(['async', 'ssl']))
    ->request();

您可以使用已创建的对象,更改其 URL 和回调函数,任何时间都可以

$another_request_result = $request
    ->setUrl($new_url)
    ->setCallback(
        function ($response_content, $requested_url){
            $processed_response_content = strreplace(
                'Hello',
                'Hey!',
                $response_content
            ); 
            
            return $processed_response_content;
        })
    ->request();

或使用多个异步请求。此请求将向 example.com 和 exapme2.com 发送异步请求,使用自定义用户代理,并将响应直接传递到输出缓冲区

$miltiple_request = new Cleantalk\Common\HTTP\Request();
$multiple_request_result = $request
    ->setUrl(['example.com', 'example2.com'])
    ->setData(['foo' => 'bar']])
    ->setPresets(['async']))
    ->setOptions([
        CURLOPT_RETURNTRANSFER => fase,                  // CURL format is supported
        'user-agent'           => 'My custom User-Agent' // And user-friendly
        ])
    ->request();

预设

库使用预设,允许您配置其行为。使用 'setPresets()' 方法来设置它们。

->setPresets([
        'async',
        'get',
        'dont_follow_redirects'
    ])

可以使用以下预设(您可以根据需要以任何方式组合它们)

  • dont_follow_redirects - 忽略 300 系列 HTTP 响应代码,并不要遵循重定向
  • get_code - 仅获取 HTTP 响应代码
  • async - 异步请求。发送请求并返回 'true' 值。不等待响应。
  • get - 使用 GET 类型的请求而不是默认的 POST 类型
  • ssl - 使用 SSL
  • cache - 允许此请求缓存
  • retry_with_socket - 如果 cURL 无法检索数据,则使用套接字再次请求

选项

如果您需要精确调整,则可以使用 'setOptions' 方法。

->setOptions([
        CURLOPT_RETURNTRANSFER => fase,                  // CURL format is supported
        'user-agent'           => 'My custom User-Agent' // And user-friendly
    ])

它支持任何 cURL 类型选项(更多详情请参阅 cURL 文档)和以下人性化的选项

  • timeout - 最大连接持续时间(整数)
  • sslverify - 验证主机(布尔值)
  • sslcertificates - 提供您自己的 SSL 证书(字符串)
  • headers - 任何自定义头(字符串数组)
  • user-agent - 自定义用户代理(字符串)

许可

此库是开源软件,根据 GPLv3 许可证授权。