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

README

php-extended/php-api-endpoint-http-interface 的实现,当查询响应时动态解压数据。

coverage build status

安装

此库的安装通过 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-FileX-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(见 许可文件)。