http 请求和响应解决方案

v0.0.7 2023-05-04 03:49 UTC

This package is not auto-updated.

Last update: 2024-09-20 09:13:19 UTC


README

安装

composer require astronphp/http

用户指南

1. 发送请求

1.1 初始配置

use \Astronphp\Http\Request;

$request = new Request('www.example.com/api');

1.2 执行请求

$request->post('/users');
$request->get('/users/1');
$request->put('/users/1');
$request->patch('/users/1');
$request->delete('/users/1');

1.3 发送头部

use \Astronphp\Http\Header;

$header = new Header();
$header->add('Content-Type', 'application/json');
// ou usando constantes
// $header->add(Header::CONTENT_TYPE, Request::JSON);

$request->get('/users/1', $header);

1.4 发送正文

1.4.1 使用数组
$header = new Header();
$header->add('Content-Type', 'application/x-www-form-urlencoded');
//$header->add(Header::CONTENT_TYPE, Request::URL_ENCODED);

// enviando o corpo como array
$body = ['name' => 'Lorem Ipsum', 'document' => '123.456.789-12'];
$request->post('/users', $header, $body);
1.4.2 使用 JSON 字符串
$header = new Header();
$header->add('Content-Type', 'application/json');
//$header->add(Header::CONTENT_TYPE, Request::JSON);

$body = '{"name":"Lorem Ipsum", "document":"123.456.789-12"}';
$request->post('/users', $header, $body);

1.5 通过 URL 发送参数

$request->set('department', 'clothing');
$request->set('sort', 'best_seller');

// www.example.com/api/products/clothing?sort=best_seller
$request->get('/products/{department}');

也可以提供一个关联数组,这将产生与上一个示例相同的结果。

$request->set(['department' => 'clothing', 'sort' => 'best_seller']);
$request->get('/products/{department}');

1.6 接收响应数据

假设以下示例返回以下结构

 {
	"status":"success",
	"data": {
		"id": 1,
		"name": "Astron",
		"username": "astronphp",
		"password": "@astronphp"
	}
}
$response = $request->get('/users/1');

$response->getHttpCode(); // 200

$response->get('status'); // success
$response->get('data.name'); // Astron

2. 接收请求

2.1 初始配置

use \Astronphp\Http\Request;

$request = new Request();

2.2 访问数据

$request->query('username'); // dados recebidos via get
$request->body('username'); // dados recebidos via post
$request->files('picture');
$request->server('request_uri'); // case insensitive
$request->header('content_type'); // case insentitive

3. 发送响应

3.1 初始配置

use \Astronphp\Http\Response;

$response = new Response(['status' => 'success', 'message' => 'lorem ipsum']);

// ou como uma string json
// $response = new Response({"status":"success", "message":"lorem ipsum"});

3.2 发送 JSON 响应

$response->json();

4. 页面导航

4.1 配置基本 URI

\Astronphp\Http\Location::setBaseUri('https://www.example.com');

4.2 重定向

$location = new \Astronphp\Http\Location('/products');
$location->redirect(); // redireciona para https://www.example.com/products

4.3 重新加载页面

$location = new \Astronphp\Http\Location();
$location->reload();