dmt-software/http-client-middleware 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dmt-software/http-client-middleware

最新稳定版本:v2.0.0

Composer 安装命令:

composer require dmt-software/http-client-middleware

包简介

HTTP client request handler

README 文档

README

Unfortunately psr-15, the recommendation how to handle incoming server request, does not cover how to deal with an outgoing request or a client response.

This package solves that problem.

Installation

composer require dmt-software/http-client-middleware

Usage

use DMT\Http\Client\RequestHandler;
use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\RequestInterface;

/** @var ClientInterface $client */
$handler = new RequestHandler($client);
$response = $handler->handle($request);
 
if ($response->getStatusCode() === 200) {
   // process the response
}

Middleware

Middleware can be used to process a request before it is sent to the server by the client or to handle the response, for instance to apply authentication, store a login cookie or log the response.

use DMT\Http\Client\MiddlewareInterface;
use DMT\Http\Client\RequestHandlerInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\RequestInterface;

/**
 * Apply basic authentication header to the request
 */
class BasicAuthMiddleware implements MiddlewareInterface
{
    private string $user = 'user';
    private string $pass = '*****';
    
    public function process(RequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $request = $request->withHeader(
            'Authorization', sprintf('Basic %s', base64_encode("$this->user:$this->pass")) 
        );
        
        return $handler->handle($request);
    }
}

To enable middleware simply add these to the request handler.

use DMT\Http\Client\RequestHandler;
use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\RequestInterface;

/** @var ClientInterface $client */
$handler = new RequestHandler(
    $client,
    $basicAuthMiddleware,
    $otherMiddleware,
);
$response = $handler->handle($request);

统计信息

  • 总下载量: 15.75k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-03-05