wbsartori / request-manager
Request Manager 是一个包含 Guzzle 和 PhpCurlClass 库抽象的 PHP HTTP 客户端库
v0.0.4
2023-04-19 20:22 UTC
Requires
- php: >=7.3
- ext-json: *
- guzzlehttp/guzzle: ^7.5.0
- php-curl-class/php-curl-class: ^9.14
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-22 16:50:44 UTC
README
要求
Request Management Package requires PHP version 7.3.0 or greater.
安装
To use the package it is necessary to install it via composer:
composer require wbsartori/request-manager
使用 GuzzleRequest 的基本示例
您可以调用 Runner 类,并在 setClient 方法中传入您想要使用的客户端,目前我们的包支持 GuzzleRequet 和 PhpCurlClass,并有一些抽象。
带有基本身份验证的 GET 方法
use RequestManager\RequestRunner; use RequestManager\Http\GuzzleRequestAdapter; try { $url = sprintf('%s%s', '/',$router ); $response = (new RequestRunner()) ->setClient(new GuzzleRequestAdapter()) ->basicAuth($username, $password) ->setHeader($headers) ->setUri($uri) ->get($url); echo json_encode($response); } catch (Exception $e) { echo json_encode([ 'code: ' => $e->getCode(), 'message: ' => $e->getMessage() ]); }
带有基本身份验证的 POST 方法
use RequestManager\RequestRunner; use RequestManager\Requests\GuzzleRequest; try { $data = [ [ 'description' => 'description', 'acronym' => 'acronym' ] ]; $url = sprintf('%s%s', '/', $router ); $response = (new RequestRunner()) ->setClient(new GuzzleRequest()) ->basicAuth($username, $password) ->setHeader(['header' => '']) ->setUri($uri) ->setData(['multipart' => $data]) ->post($url); echo json_encode($response); } catch (Exception $e) { echo json_encode([ 'code: ' => $e->getCode(), 'message: ' => str_replace('\\', '', $e->getMessage()) ]); }
带有基本身份验证的 UPDATE 方法
use RequestManager\RequestRunner; use RequestManager\Requests\GuzzleRequest; try { $data = [ 'description' => 'New description', 'acronym' => 'NA' ]; $url = sprintf('%s%s%s%s', '/', $router, DIRECTORY_SEPARATOR, 30 ); $response = (new RequestRunner()) ->setClient(new GuzzleRequest()) ->basicAuth($username, $password) ->setHeader(['header' => '']) ->setUri($uri) ->setData(['json' => $data]) ->put($url); echo json_encode($response); } catch (Exception $e) { echo json_encode([ 'code: ' => $e->getCode(), 'message: ' => str_replace('\\', '', $e->getMessage()) ]); }
带有基本身份验证的 DELETE 方法
use RequestManager\RequestRunner; use RequestManager\Requests\GuzzleRequest; try { $url = sprintf('%s%s%s%s', '/', $router, DIRECTORY_SEPARATOR, 30 ); $response = (new RequestRunner()) ->setClient(new GuzzleRequest()) ->basicAuth($username, $password) ->setHeader(['header' => '']) ->setUri($uri) ->delete($url); echo json_encode($response); } catch (Exception $e) { echo json_encode([ 'code: ' => $e->getCode(), 'message: ' => $e->getMessage() ]); }
方法
setClient((new Client)); #Set the Client you want to use, if you don't use this method, Guzzle will be set as default. basicAuth($username, $password); #Basic authentication, if not used, the default noAuth will be used. bearerTokenAuth($token); #Bearer token authentication, if not used, the default noAuth will be used. setHeader($headers) #Receives an array of headers from the request if necessary. setUri($uri) #Get the api host with the slash at the end. setData($uri) #Receives an array of data if the method needs to pass some value. get($url) #Receives the route for which you want to fetch data. post($url) #Get the route for which you want to create data. put($url) #Get the route for which you want to update data. delete($url) #Get the route for which you want to delete data.
您可以查看文档以获取使用 Guzzle 和 PHPCurlClass 的示例。