请求

实例化客户端

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tioncico
  5. * Date: 19-6-22
  6. * Time: 下午2:43
  7. */
  8. include "./vendor/autoload.php";
  9. \EasySwoole\EasySwoole\Core::getInstance()->initialize();
  10. go(function () {
  11. //实例化
  12. $client = new \EasySwoole\HttpClient\HttpClient('http://easyswoole.com');
  13. });

请求实例:

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tioncico
  5. * Date: 19-6-22
  6. * Time: 下午2:43
  7. */
  8. include "./vendor/autoload.php";
  9. \EasySwoole\EasySwoole\Core::getInstance()->initialize();
  10. go(function () {
  11. //实例化
  12. $client = new \EasySwoole\HttpClient\HttpClient('http://easyswoole.com');
  13. //发起一个简单get请求
  14. $response = $client->get();
  15. var_dump($response);
  16. //发起一个简单head请求
  17. $response = $client->head();
  18. var_dump($response);
  19. //发起一个delete请求
  20. $response = $client->delete();
  21. //发起一个put请求
  22. $response = $client->put('testPut');
  23. //发起一个post请求
  24. $response = $client->post([
  25. 'post1' => 'post1'
  26. ]);
  27. //发起一个patch请求
  28. $response = $client->patch('testPath');
  29. //发起一个option请求
  30. $response = $client->options(['op' => 'op1'], ['head' => 'headtest']);
  31. //发起post xml格式请求
  32. $response = $client->postXml('<xml></xml>');
  33. //发起post json格式请求
  34. $response = $client->postJson(json_encode(['json' => 'json1']));
  35. //发起下载请求,请求的内容将直接写入文件,节省一次读取写入的过程
  36. $response = $client->download('./test.html');
  37. //发起一个post请求
  38. $response = $client->post('postStr');
  39. //发起一个post 新增文件的请求
  40. $response = $client->post([
  41. 'post1' => 'post1',
  42. 'file' => new \CURLFile(__FILE__)
  43. ]);
  44. //设置head头
  45. $client->setHeaders([
  46. 'head1' => 'head1',
  47. 'head2' => 'head2'
  48. ]);
  49. // 设置 basic auth
  50. $client->setBasicAuth('admin', '111111');
  51. $client->setHeader('head1', 'head1');
  52. //设置cookie
  53. $client->addCookies([
  54. 'cookie1' => 'cookie1',
  55. 'cookie2' => 'cookie2'
  56. ]);
  57. $client->addCookie('cookie1', 'cook');
  58. //设置form data数据
  59. $client->setContentTypeFormData();
  60. ///设置当前要请求的URL
  61. $client->setUrl('http://easyswoole.com');
  62. //设置是否开启ssl
  63. $client->setEnableSSL(false);
  64. //设置等待超时时间
  65. $client->setTimeout(5);
  66. //设置连接超时时间
  67. $client->setConnectTimeout(10);
  68. // 启用或关闭HTTP长连接
  69. $client->setKeepAlive(true);
  70. //启用或关闭服务器证书验证
  71. //可以同时设置是否允许自签证书(默认不允许)
  72. $client->setSslVerifyPeer(true,true);
  73. //设置服务器主机名称
  74. //与ssl_verify_peer配置或Client::verifyPeerCert配合使用
  75. $client->setSslHostName('');
  76. //设置验证用的SSL证书
  77. $client->setSslCafile('');
  78. //设置SSL证书目录(验证用)
  79. $client->setSslCapath('');
  80. //设置请求使用的证书文件
  81. $client->setSslCertFile('');
  82. //设置请求使用的证书秘钥文件
  83. $client->setSslKeyFile('');
  84. //设置HTTP代理
  85. $client->setProxyHttp('127.0.0.1','8080','user','pass');
  86. //设置Socks5代理
  87. $client->setProxySocks5('127.0.0.1','8080','user','pass');
  88. // 设置端口绑定
  89. // 用于客户机有多张网卡的时候
  90. // 设置本客户端底层Socket使用哪张网卡和端口进行通讯
  91. $client->setSocketBind('127.0.0.1','8090');
  92. //直接设置客户端配置
  93. $client->setClientSetting('timeout',1);
  94. $client->setClientSetting('keep_alive',true);
  95. //直接批量设置客户端配置
  96. $client->setClientSettings([
  97. 'bind_address'=>'127.0.0.1',
  98. 'bind_port'=>'8090',
  99. ]);
  100. //设置请求方法
  101. $client->setMethod('POST');
  102. //设置为XMLHttpRequest请求
  103. $client->setXMLHttpRequest();
  104. //设置为Json请求
  105. $client->setContentTypeJson();
  106. //设置为Xml请求
  107. $client->setContentTypeXml();
  108. //设置为FromData请求
  109. $client->setContentTypeFormData();
  110. //设置为FromUrlencoded请求
  111. $client->setContentTypeFormUrlencoded();
  112. //设置ContentType
  113. $client->setContentType(\EasySwoole\HttpClient\HttpClient::CONTENT_TYPE_APPLICATION_XML);
  114. //
  115. });