异步Http客户端

Get方式

1.使用域名形式

  1. use AsyncHttp;
  2. //直接使用域名, get方式
  3. $http = new AsyncHttp('http://groupco.com');
  4. //设置2s超时
  5. $http->setTimeout(2);
  6. //$http->setCookies(['token' => 'xxxx']);
  7. $res = (yield $http->get('/'));

2.使用ip:port形式

  1. use AsyncHttp;
  2. //也可以通过ip:port方式
  3. $http = new AsyncHttp('http://127.0.0.1:80');
  4. $http->setHost('groupco.com');
  5. $res = (yield $http->get('/user', ['id' => 1]));

Post方式

1.使用域名形式

  1. use AsyncHttp;
  2. //使用https, post方式
  3. $http = new AsyncHttp('https://groupco.com');
  4. $res = (yield $http->post('/test', ['postId' => 52]));

2.使用ip:port形式

  1. use AsyncHttp;
  2. //也可以通过ip:port方式
  3. $http = new AsyncHttp('http://127.0.0.1:80');
  4. $http->setHost('groupco.com');
  5. $res = (yield $http->post('/test', ['postId' => 52]));
注:若请求https地址,需要在编译swoole时开启openssl

其他使用形式(自定义)

  1. use AsyncHttp;
  2. $http = new AsyncHttp('http://127.0.0.1:9200');
  3. yield $http->parseDomain();
  4. $client = $http->getClient("/search");
  5. $client->setMethod("GET");
  6. $client->setData('xxxx');
  7. $client->setHeaders(['Content-Type' => 'application/json']);
  8. $res = (yield $client);
  9. if ($res && $res['response']) {
  10. dump($res['response']);
  11. }