walker/incutio-php-http-client

HttpClient 是 HTTP 协议的客户端类。

dev-main 2020-05-26 14:18 UTC

This package is not auto-updated.

Last update: 2024-09-15 00:45:17 UTC


README

这是 Incutio PHP HTTP 客户端类的延续。它仍然是市面上最好的独立 HTTP 客户端类之一。我只是想让它做得更多。

关于 HTTP 规范的所有信息中,POST、PUT 和 DELETE 请求都允许包含正文内容,因此我们允许您在使用此客户端时发送正文内容。

实例化

$client = new HttpClient('www.domain.com', 80);

第一个参数是域名,第二个参数是端口。端口是可选的,如果未提供,则默认为 80。

如果您想在 https:// URL 上实例化,请将其添加到域名中

$client = new HttpClient('https://www.domain.com');

这将自动在连接时使用端口 443。

基本认证

如果您使用此库访问的 API 需要基本认证

$client->setAuthorization('username', 'password');

GET

$data 可以是对象或数组。 $headers 应该是数组

$client->get('/service/endpoint', $data, $headers);

POST

$data 可以是字符串、对象或数组。 $headers 应该是数组

$client->post('/service/endpoint', $data, $headers);

PUT

$data 可以是字符串、对象或数组。 $headers 应该是数组

$client->put('/service/endpoint', $data, $headers);

DELETE

$data 可以是字符串、对象或数组。 $headers 应该是数组

$client->put('/service/endpoint', $data, $headers)

头部

请求的 Content-Type 不再默认设置。

如果没有设置 Accept,它默认为

'text/xml,application/xml,application/xhtml+xml,text/html,text/plain,image/png,image/jpeg,image/gif,*/*'

头部应该是类似以下的内容

array('Accept'=>'application/json', 'Content-Type':'text/xml', 'etc')

$data$headers 在这些中都是可选的。

Referer

Incutio 库曾经将调用的最后一个项目的 referer 设置为调用。我很少发现这很有用,所以现在默认关闭。要重新启用它

$this->client->setPersistReferers(true);

响应内容

获取最近 URL 调用返回的内容。

$client->getContent();

响应头部

您可以仅获取状态或获取最近 URL 调用的所有头部

$client->getStatus();
$client->getHeaders();