eva / http-request
HTTP消息的通用接口
dev-main
2023-09-20 16:54 UTC
Requires
- php: >=8.1
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
This package is auto-updated.
Last update: 2024-09-20 19:19:53 UTC
README
该库提供对HTTP协议的交互
基于Http数据包的模型。然而,它不支持psr,不应完全使用。
该库包括
- 请求和响应的HTTP消息构建器
- 解析器,允许您快速从HTTP消息中提取数据,格式易于处理
- RequestSender - 发送和接收消息的实现(使用套接字进行低级发送)
- 简单的客户端和包装器,可以是简单的本地请求或创建完整的请求服务(示例在示例文件夹中)
安装
- 在您的composer文件中添加 "minimum-stability": "dev"
- 安装
composer require "eva/http-request"
简单示例
<?php
require_once __DIR__ . '/../vendor/autoload.php';
$request = new Eva\Http\Message\Request(
\Eva\Http\HttpMethodsEnum::GET,
'https://www.google.com',
[
'Authorization' => 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlNjc4ZjIzMzQ3ZTM0MTBkYjdlNjg3Njc4MjNiMmQ3MCI'
]
);
$client = new \Eva\Http\Client();
$response = $client->sendRequest($request);
if ($response->getStatusCode() === 200) {
echo $response->getBody();
} else {
throw new RuntimeException($response->getBody());
}
使用HttpRequestMessageBuilder
(通常用于构建查询、主体、json等)
<?php
require_once __DIR__ . '/../vendor/autoload.php';
$httpRequestMessageBuilder = new \Eva\Http\Builder\HttpRequestMessageBuilder;
$httpRequestMessageBuilder
->addMethod(\Eva\Http\HttpMethodsEnum::GET)
->addUrl('https://www.google.com')
->addHeaders([
'Authorization' => 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlNjc4ZjIzMzQ3ZTM0MTBkYjdlNjg3Njc4MjNiMmQ3MCI'
]);
$request = $httpRequestMessageBuilder->build();
$client = new \Eva\Http\Client();
$response = $client->sendRequest($request);
if ($response->getStatusCode() === 200) {
echo $response->getBody();
} else {
throw new RuntimeException($response->getBody());
}
使用HttpMethodsTrait
<?php
require_once __DIR__ . '/../vendor/autoload.php';
$client = new \Eva\Http\Client();
$response = $client->get('https://www.google.com', [
'Authorization' => 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlNjc4ZjIzMzQ3ZTM0MTBkYjdlNjg3Njc4MjNiMmQ3MCI',
]);
if ($response->getStatusCode() === 200) {
echo $response->getBody();
} else {
throw new RuntimeException($response->getBody());
}