http默认超时时间_Bof 是一个HTTP客户端,旨在尽可能方便用户使用
生活随笔
收集整理的這篇文章主要介紹了
http默认超时时间_Bof 是一个HTTP客户端,旨在尽可能方便用户使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Bof
Bof是一個HTTP客戶端,旨在盡可能方便用戶使用。
它使最經典的用例(例如下載文件,與JSON API交互或提交表單)盡可能地簡單。
由于Bof基于Guzzle,因此可以直接使用Guzzle的方法解決更高級的用例。
綜上所述,Bof:
- 是用戶友好的
- 避免使用魔術字符串和數組進行配置:相反,它提供了可以由IDE自動完成的顯式,類型化和文檔化的方法
- 帶有默認值:默認支持JSON,4xx和5xx響應拋出異常,默認情況下超時時間短
- 符合PSR-7
未來的計劃:
- 符合PSR-18(HTTP客戶端標準)
- 彈性機制,例如重試,退避等。
需要簡短的插圖嗎?這是Bof與Guzzle的比較:
// Bof$http = new BofHttp;$createdProduct = $http ->withHeader('Authorization', 'Token abcd') ->postJson('example.com/api/products', [ 'Hello' => 'world', ]) ->getData();// Guzzle$client = new GuzzleHttpClient([ 'headers' => [ 'Authorization' => 'Token abcd', ],]);$response = $client->request('POST', 'example.com/api/products', [ 'json' => [ 'Hello' => 'world', ]]);$createdProduct = json_decode($response->getBody()->__toString(), true);if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception('There was an error while decoding the JSON response');}我們需要一個新的HTTP客戶端嗎?
可能不是。如果該客戶端引起了人們的興趣,這可能意味著我們已經很流行的HTTP客戶端可以使用針對簡單用例的更簡單的API。如果您維護HTTP客戶端并且有興趣,我希望將Bof合并到現有庫中。打開一個問題!
安裝
composer require mnapoli/bof用法
$http = new BofHttp;$response = $http->get('example.com/api/products');組態
該BofHttp班是不可變的。
通過調用withXxx()每次都會創建新對象的方法來應用配置:
$http = new BofHttp;// The header will apply to all subsequent requests$http = $http->withHeader('Authorization', "Bearer $token");請記住,withXxx()方法返回原始客戶端的副本:
$http1 = new BofHttp;$http2 = $http1->withHeader('Authorization', "Bearer $token");// $http1 does not have the header applied// $http2 has the header由于有了這種模式,可以使用相同的方法僅將配置應用于特定請求:
$ products = $ http- > withHeader(' Authorization ',“ Bearer $ token ”)-> get(' https://example.com/api/products ')-> getData(); //下一個請求將*不*具有`Authorization`標頭發送JSON數據
使用JSON方法,數據將自動編碼為JSON。甲Content-Type的報頭application/json將被添加。
$ http- > postJson(' example.com/api/products ',[ ' foo ' => ' bar ',]); // putJson()或patchJson()也可以發送表格數據
數據也可以作為application/x-www-form-urlencodedPOST請求發送:
$ http- > postForm(' https://example.com/api/products ',[ ' foo ' => ' bar ',' baz ' => [ ' hi ',' there!' ],]); // putForm()也可以超時時間
默認情況下,超時設置為短值:
- 5秒的請求超時
- HTTP連接超時為3秒
您可以設置更短或更長時間的超時(或通過將其設置為來禁用它們0):
// 2秒的請求超時,1秒超時連接$ HTTP = $ HTTP - > withTimeout( 2, 1);更多使用方法可以查看官方文檔
開源地址:
github.com/mnapoli/bof更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。
總結
以上是生活随笔為你收集整理的http默认超时时间_Bof 是一个HTTP客户端,旨在尽可能方便用户使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 日志不会按照日期分割_py
- 下一篇: nohup 输出日志到文件_超详细的EF