codememory / screw
发送 Http 请求的组件
Requires
- php: >= 7.1
- guzzlehttp/guzzle: ^7.2
This package is auto-updated.
Last update: 2024-09-29 05:49:51 UTC
README
HTTP Screw - 这是 Guzzle 包的接口,使用面向对象的方法简化请求的创建
安装
composer require codememory/http-screw
文档
请求方法
-
baseUrl(): HttpRequest
向客户端添加 URL。然后在setUrl()
中可以直接传递链接-
string $url (default: null)
-
-
setUrl(): HttpRequest
添加要请求的 URL-
string $url (default: null)
-
-
addPort(): HttpRequest
向 URL 添加端口-
integer $port (default: null)
-
-
setMethod(): HttpRequest
请求方法 [ GET|POST|PUT|DELETE|UPDATE ]-
string $method (default: GET)
-
-
clientOptions(): HttpRequest
下一个指定的选项将添加到客户端。这些选项将成为默认选项-
boolean $status (default: false)
-
-
option(): HttpRequest
向请求添加选项-
string $option (default: null)
-
callable $callback (default: None): $option
-
object $option (default: $option)
-
-
-
processResponseCode(): HttpRequest
处理 HTTP 状态码-
callable $callback (default: None)
-
Response $response (default: $response)
-
-
integer $code (default: 200)
-
-
refuser(): HttpRequest
处理请求错误。这可能包括连接错误等-
callable $callback (default: None)
-
RequestException $e (default: $e)
-
-
-
addBody(): HttpRequest
发送 Body-
string $body (default: None)
-
-
addJson(): HttpRequest
将数据以 JSON 编码作为请求体加载。如果消息中已存在 Content-Type 头,则不会添加 Content-Type: application/json 头-
mixed $data (default: None)
-
-
saveBody(): HttpRequest
添加存储响应体路径的位置 -
send(): HttpRequest
方法向指定的 URL 发送请求 -
response(): GuzzleResponse
返回 Guzzle 响应包
选项及其组件
重定向
> HttpRequest::O_REDIRECT
-
redirect()
允许重定向-
boolean $performRedirects (default: false)
-
-
numberRedirects()
重定向次数-
integer $redirects (default: 5)
-
-
strictRedirect()
精确重定向-
boolean $strictly (default: false)
-
-
addRefererOnRedirect()
允许在发现重定向时添加 referer 头-
boolean $allowDispatch (default: true)
-
-
redirectHandler()
发现重定向时的处理器-
object|callable $allowDispatch (default: null)
-
-
allowProtocols()
添加允许的协议-
string ...$args (default: [http, https])
-
认证
> HttpRequest::O_AUTH
-
username()
用户名-
string|integer $username (default: null)
-
-
password()
用户密码-
string|integer $password (default: null)
-
-
type()
认证类型 [basic, digest, ntlm]-
string $type (default: null)
-
-
disable()
禁用认证-
无(默认:true(开))
-
-
enable()
启用身份验证-
无(默认:true(开))
-
超时(秒)
> HttpRequest::O_TIMEOUT
-
connectionTime()
连接到服务器的时间-
整数|浮点数 $time (默认:0)
-
-
requestTime()
请求时间-
整数|浮点数 $time (默认:0)
-
-
readTime()
读取流式内容时使用的时间-
整数|浮点数 $time (默认:php.ini中的default_socket_timeout)
-
SSL证书
> HttpRequest::O_SSL
-
certificate()
包含PEM格式证书的文件的路径-
字符串 $pathCertificate (默认:None)
-
字符串|null $password (默认:null)
-
-
key()
包含PEM格式SSL私钥的文件的路径-
字符串 $pathCertificate (默认:None)
-
字符串|null $password (默认:null)
-
-
verify()
启用SSL检查或设置磁盘上自定义证书的路径-
布尔型|string $pathOrStatus (默认:true)
-
代理
> HttpRequest::O_PROXY
-
setProxy()
添加具有特定协议的代理-
字符串 $proxy (默认:null) - 代理URL地址
-
字符串|null $protocol (默认:None) - 代理协议
-
-
username()
用户名-
字符串 $username (默认:None) - 带用户名示例 [http://username:password@127.0.0.1:80]
-
-
password()
用户密码-
字符串 $password (默认:None)
-
-
setUser()
合并username()
和password()
方法-
字符串 $username (默认:None)
-
字符串 $password (默认:None)
-
布尔型 $forAllAddresses (默认:false) - 添加到所有后续URL地址的用户名和密码
-
-
preventProxy()
添加不应代理的域名-
字符串 ...$args (默认:None)
-
参数
HttpRequest::O_PARAMS
-
form()
如果请求方法为POST,则传递POST数据-
数组 $data (默认:None)
-
-
query()
如果请求方法为GET,则传递GET数据-
数组 $data (默认:None)
-
-
withFiles(): ParamsOption
发送文件。 不与form()
方法一起使用-
字符串 $inputName (默认:None)
-
混合 NOT null $contents (默认:None) - 用于表单元素的数
-
?string $filename (默认:Null)
-
?array $headers (默认:[])
-
头部
HttpRequest::O_HEADERS
decodeContent(): HeadersOption
指定是否将响应的Content-Encoding
(gzip,deflate等)自动解码。-
字符串|布尔型 $decode (默认:true)
-
header()
添加头部-
字符串 $name (默认:None)
-
混合 $value (默认:None)
-
onHeaders()
当HTTP头部响应被接收但内容尚未开始下载时调用的对象。-
callable $callback (default: None)
-
Response $response (默认:Response)
-
-
expect()
控制头部“Expect: 100-Continue”的行为。-
整数|布尔型 $rule (默认:1048576)
-
Http
HttpRequest::O_HTTP
setVersion()
设置协议版本-
整数|浮点数 $version (默认:1.1)
-
stream()
设置流式传输响应,而不是立即加载-
boolean $status (default: false)
-
idnConversion()
支持国际化域名(IDN)(如果int-
整数|布尔型 $support (默认:true或false)
-
httpExceptions()
根据HTTP-code
抛出异常-
布尔型 $status (默认:true)
-
ipVersion()
设置IP版本-
字符串 $version (默认:None)
-
stats()
允许访问请求的统计信息以及访问与您的客户端关联的底层传输处理器的详细信息。-
callable $callback (default: None)
-
TransferStats $stats (默认:TransferStats)
-
-
sync()
通知HTTP处理程序您将等待响应。这可能有助于优化-
布尔型 $status (默认:None)
-
进度
HttpRequest::O_PROGRESS
progress()
定义在传输执行时调用的函数。-
callable $callback (default: None)
-
整数 $downloadTotal (默认: 0) - 期望下载的总字节数,如果未知则为零
-
整数 $downloadedBytes (默认: 0) - 目前已下载的字节数
-
整数 $uploadTotal (默认: 0) - 应下载的总字节数
-
整数 $uploadedBytes (默认: 0) - 目前已上传的字节数
-
-
响应方法
-
responseType()
将响应体转换为类型-
整数 $type (默认: String(4))
Response::RESPONSE_JSON
Response::RESPONSE_ARRAY
Response::RESPONSE_OBJECT
Response::RESPONSE_STRING
-
-
getBody()
获取响应体 -
getHttpCode()
获取 HTTP-代码 -
getResponseGuzzle(): GuzzleResponse
返回GuzzleResponse
类对象 -
__call()
从GuzzleResponse
对象调用其他方法 更多信息
发送请求
use Codememory\Screw\HttpRequest; $httpRequest = new HttpRequest(); $response = $httpRequest ->setUrl('http://example.com/') // Url запроса ->setMethod('GET') // Метод запроса ->send();
带选项的请求
$httpRequest ->setUrl('http://example.com/') ->setMethod('GET') ->option(HttpRequest::O_REDIRECT, function(RedirectOption $redirect): RedirectOption { $redirect ->redirect(true); return $redirect; }) ->send();
使用多个选项及其组件的示例
$httpRequest ->setUrl('http://example.com/') ->setMethod('GET') ->option(HttpRequest::O_REDIRECT, function(RedirectOption $redirect): RedirectOption { $redirect ->redirect(true) ->allowProtocols('http'); return $redirect; }) ->option(HttpRequest::TIMEOUT, function(TimeoutOption $timeout): TimeoutOption { $timeout ->delay(4) ->requestTime(5); return $timeout; }) ->send();