Http

Http Client目前支持两种使用方式:

  • 原生HttpClient
  • ZanFrameworkNetworkCommonClient::call

原生HttpClient

HttpClient的使用示例如下,创建HttpClient实例之后,yield调用get方法即可异步返回结果。返回结果为ZanFrameworkNetworkCommonResponse对象,可以通过getBody、getHeaders和getStatusCode获取响应的包内容、头部和状态码。

HttpClient的构造方式主要有以下三种:

1.$httpClient = new HttpClient($host, $port);
2.$httpClient = HttpClient::newInstance($host, $port = 80, $ssl = false);
3.$httpClient = HttpClient::newInstanceUsingProxy($host, $port = 80, $ssl = false);

参数ssl表示是否为https连接,访问https的url时,传入ssl为true。

第一种方式与第二种等价,第三种通过proxy建立http连接.

http client目前支持get、post和postJson方法。

$httpClient = new HttpClient($host, $port);
$params = [];
$timeout = 60;
$response = (yield $httpClient->get($uri, $params, $timeout));
$result = $response->getBody();

Client::call

client::call对HttpClient进行了封装,通过将所有访问目的地址信息聚集到统一配置文件中,业务方使用时就只需要指定配置目录的层级关系即可代替url,接口API为:

client::call($api, $params = [],$callback = null, $method = 'POST',$format='form')

api为目的url在ApiConfig.php中的层级位置,params为请求的参数,$callback保留,目前未使用。

$method取值’POST’或’GET’,表示请求的方法

$format定义POST的body格式,取值’format’或’json’,分别表示content-type为’application/x-www-form-urlencoded’和’application/json’