php-extended / php-api-endpoint-http-gzip
该软件包已被废弃,不再维护。作者建议使用 php-extended/php-http-client-gzip 软件包。
php-extended/php-api-endpoint-http-interface 的实现,当查询响应时动态解压数据
6.0.5
2023-08-13 13:32 UTC
Requires
- php: >=7.4
- ext-zip: *
- php-extended/php-api-endpoint-http-interface: ^6.1
- php-extended/polyfill-php80-stringable: ^1.2
Requires (Dev)
This package is auto-updated.
Last update: 2023-08-15 15:50:19 UTC
README
php-extended/php-api-endpoint-http-interface 的实现,当查询响应时动态解压数据。
安装
此库的安装通过 composer 完成,并使用其自动加载器自动加载该库的所有类。
- 从 他们的网站 下载
composer.phar
。 - 然后运行以下命令将此库作为依赖项安装
php composer.phar require php-extended/php-api-endpoint-http-gzip ^6
基本用法
此库需要多个条件才能正常运行
- 首先,请求必须包含一个指向现有可写目录中可能有效文件的
X-Php-Download-File
头。这是 http 客户端将下载文件的位置。 - 其次,http 客户端必须支持
X-Php-Download-File
头以将该 http 请求的正文写入该文件。 - 第三,http 客户端必须在响应中设置一个指向同一文件的
X-Request-Header-X-Php-Download-File
头。如果不这样做,它可能会设置一个X-Php-Download-File
头。 - 第四,http 客户端必须提供一个指向此文件的流作为响应。
此端点的作用是,对于每次请求文件,它都会尝试在同一目录下以新名称解压它。它将替换请求中现有的 X-Request-Header-X-Php-Download-File
和 X-Php-Download-File
头,指向新的未压缩文件,并将响应流更改为新流,指向新文件。如果解压缩操作成功,则删除请求中 X-Php-Download-File
头请求的旧文件。
/* @var $httpEndpoint \PhpExtended\Endpoint\EndpointInterface */
$gzipEndpoint = new GzipHttpEndpoint($httpEndpoint);
$stream = $gzipEndpoint->httpGet($gzipEndpoint->createUri('https://example.com/path/to/file.gz'), [
'X-Php-Download-File' => '/tmp/file.gz',
]);
/* @var $stream \Psr\Http\Message\StreamInterface */
一旦你完成流,你可以删除该文件(使用流的元数据可以找到文件名)。或者,使用 $gzipEndpoint->httpGetResponse()
你将获得 http 响应而不是只有流,并可以通过 X-Php-Download-File
头获取文件路径。
许可协议
MIT(见 许可文件)。