五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

HttpClient

協程Http客戶端,基于\Swoole\Http\Client實現,在協程內快速發起http請求。

安裝

composer require easyswoole/http-client

請求

需要在協程環境內發起請求。

請求實例

$client = new \EasySwoole\HttpClient\HttpClient('http://easyswoole.com');

設置Url

可在實例化的時候,傳入Url,或者如下:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setUrl('http://easyswoole.com');

設置query

通過url傳入.

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setUrl('http://easyswoole.com?a=1');

通過方法傳入.

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setQuery(['a' => 1]);

注意:

setQuery方法將你原本url的參數也帶過來.

設置Ssl

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setEnableSSL(true);

設置等待超時時間

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setTimeout(5);

設置連接超時時間

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setConnectTimeout(10);

設置Header

設置單項:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setHeader('test','test');

設置多項:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setHeaders(['test' => 'test']);

參數:

  • $isMerge 默認:truefalse清空原有Header重新賦值。
  • $strtolower 默認:true,false不進行小寫轉換。

設置Cookie

設置單項:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->addCookie('test','test');

設置多項:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->addCookies(['test' => 'test']);

參數:

  • $isMerge 默認:true,false清空原有Cookie重新賦值。

設置XMLHttpRequest

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setXMLHttpRequest();

設置ContentType

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setContentType($client::CONTENT_TYPE_APPLICATION_XML);

json

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setContentTypeJson();

xml

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setContentTypeXml();

from-data

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setContentTypeFormData();

from-urlencode

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setContentTypeFormUrlencoded();

設置BasicAuth

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setBasicAuth('admin','admin');

設置KeepAlive

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setKeepAlive(true);

設置客戶端配置

單個設置:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setClientSetting('bind_address','127.0.0.1');

批量設置:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setClientSettings([
    'bind_address'=>'127.0.0.1',
    'bind_port'=>'8090'
]);

設置FollowLocation

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->enableFollowLocation(5);

參數:

  • $maxRedirect 默認5,表示最多根據30x狀態碼進行的重定向次數。0 為關閉。

設置允許自簽證書

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSslVerifyPeer(true,true);

設置服務器主機名稱

與ssl_verify_peer配置配合使用

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSslHostName('');

設置驗證用的Ssl證書

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSslCafile('');

設置Ssl證書目錄

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSslCapath('');

設置Ssl證書文件

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSslCertFile('');

設置Ssl證書私鑰文件

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSslKeyFile('');

設置代理

http代理:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setProxyHttp('127.0.0.1','1087','user','pass');

socks5代理:

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setProxySocks5('127.0.0.1','1086','user','pass');

設置端口綁定

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->setSocketBind('127.0.0.1','8090');

GET

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->get();

參數:

  • $headers 設置Header

HEAD

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->head();

DELETE

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->delete();

參數:

  • $headers 設置Header

PUT

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->put();

參數:

  • $data 請求的數據
  • $headers 設置Header

POST

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->post();

post-xml

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->postXml();

post-json

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->postJson();

參數:

  • $data 請求的數據
  • $headers 設置Header

PATCH

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->patch();

參數:

  • $data 請求的數據
  • $headers 設置Header

OPTIONS

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->options();

參數:

  • $data 請求的數據
  • $headers 設置Header

Download

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->download('./test.png');

參數:

  • $filename 保存路徑
  • $offset 寫入偏移量
  • $httpMethod 請求方法
  • $rawData 請求數據
  • $contentType 設置ContentType

上傳文件

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->post([
    'file' => new \CURLFile(__FILE__)
]);

分片上傳:


$file = new EasySwoole\HttpClient\Bean\CURLFile('file',__FILE__);

// 設置表單的名稱
$file->setName('file');

// 設置要文件的路徑

$file->setPath(__FILE__);

// 設置文件總大小
$file->setLength(filesize(__FILE__));

// 設置offset(分片上傳的關鍵)
$file->setOffset(0);

// 設置文件類型
$file->setType('image/png');

/** @var \EasySwoole\HttpClient\HttpClient $client **/
$client->post([
    'file' => $file
]);

響應

以上快速發起http請求成功后,如(GET,POST),將會返回EasySwoole\HttpClient\Bean\Response。

獲取響應體

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->getBody();

當響應體為json,解析:

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->json();

參數:

  • $assoc 默認falsefalseobjecttrue為數組。

當響應體為jsonp,解析:

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->jsonp();

參數:

  • $assoc 默認falsefalseobject,true為數組。

當響應體為xml,解析:

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->xml();

參數:

  • $assoc 默認false,falseobject,true為數組。

獲取錯誤碼

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->getErrCode();

獲取錯誤信息

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->getErrMsg();

獲取響應狀態碼

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->getStatusCode();

獲取響應頭及設置的Cookie

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->getSetCookieHeaders();

獲取請求的Cookie及響應頭

/** @var \EasySwoole\HttpClient\Bean\Response $response **/
$response->getCookies();

WebSocket-Client

$client = new \EasySwoole\HttpClient\HttpClient('127.0.0.1:9501');
$upgradeResult = $client->upgrade(true);
$frame = new \Swoole\WebSocket\Frame();
//設置發送的消息幀
$frame->data = json_encode(['action' => 'hello','content'=>['a'=>1]]);
$pushResult = $client->push($frame);
$recvFrame = $client->recv();
//將返回bool或一個消息幀,可自行判斷
var_dump($recvFrame);

recv只會接收一次服務器的消息,如果需要一直接收,請增加while(1)死循環。

主站蜘蛛池模板: 久久久久琪琪精品色 | 国产a毛片高清视 | 国产高清在线精品一区αpp | 国产性大片免费播放网站 | 国产精品欧美亚洲韩国日本不卡 | 国产精品99久久99久久久看片 | 亚洲精品国产免费 | 久久久国产精品免费看 | 欧美我不卡 | 精品一区二区三区四区五区六区 | 182tv精品视频在线播放 | 99久久成人 | 六月婷婷色| 少女集中营 电影 | 男人的天堂comwww | 久久精品久久精品国产大片 | 国产一区二区三区免费在线观看 | 多人伦精品一区二区三区视频 | 免费人成在线观看网站 | 九九在线观看免费视频 | 精品无码久久久久国产 | 成人黄色小视频在线观看 | 五月天第一页 | 久久国产一久久高清 | 亚洲国产成人精品区 | 美日韩一级 | 女人的天堂网站 | 高清不卡一区 | 成人中文在线 | 免费看羞羞视频的网站 | 国产中文字幕视频 | 黄色网站小视频 | 久久国产精品亚洲77777 | 国产高清免费视频 | 黑人中文字幕在线精品视频站 | 上床视频网站 | 欧美亚洲另类久久综合 | 日韩日日操 | 国产一区二区三区不卡观 | 黄色片aa| 色欧美在线 |