HttpRequestService.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace App\Service\Util\Support\Http;
  3. use GuzzleHttp\Client;
  4. class HttpRequestService
  5. {
  6. /**
  7. * 发送post请求
  8. * @param $url 请求地址
  9. * @param $accessToken 请求access_token
  10. * @param $postMessage 请求体
  11. * @return array
  12. */
  13. public static function simplePost($url, $postMessage, $traceContext = null) {
  14. $client = new Client(['timeout' => 10]);
  15. try {
  16. $res = $client->post(
  17. $url,
  18. [
  19. 'json' => $postMessage
  20. ]);
  21. $httpStatusCode = $res->getStatusCode();
  22. $httpContent = $res->getBody()->getContents();
  23. $parsedContent = json_decode($httpContent, true);
  24. if (200 == $httpStatusCode) {
  25. return $parsedContent;
  26. }
  27. } catch (\Exception $exception) {
  28. myLog('HttpRequest')->error('请求上游失败:', [
  29. 'url' => $url,
  30. 'postJson' => $postMessage,
  31. 'exceptionMessage' => $exception->getMessage(),
  32. 'traceInfo' => is_null($traceContext) ? '' : $traceContext->getTraceInfo,
  33. ]);
  34. }
  35. return false;
  36. }
  37. public static function post($url, $options, $traceContext = null) {
  38. $client = new Client(['timeout' => 10]);
  39. try {
  40. $res = $client->request('POST', $url, $options);
  41. $httpStatusCode = $res->getStatusCode();
  42. $httpContent = $res->getBody()->getContents();
  43. $parsedContent = json_decode($httpContent, true);
  44. if (200 == $httpStatusCode) {
  45. return $parsedContent;
  46. }
  47. } catch (\Exception $exception) {
  48. myLog('HttpRequest')->error('请求上游失败:', [
  49. 'url' => $url,
  50. 'postOptions' => $options,
  51. 'exceptionMessage' => $exception->getMessage(),
  52. 'traceInfo' => is_null($traceContext) ? '' : $traceContext->getTraceInfo,
  53. ]);
  54. }
  55. return false;
  56. }
  57. public static function simpleGet($url, $query, $traceContext = null) {
  58. $client = new Client(['timeout' => 10]);
  59. try {
  60. $response = $client->get($url, [
  61. 'query' => $query
  62. ]);
  63. $httpStatusCode = $response->getStatusCode();
  64. $httpContent = $response->getBody()->getContents();
  65. $parsedContent = json_decode($httpContent, true);
  66. if (200 == $httpStatusCode) {
  67. return $parsedContent;
  68. }
  69. } catch (\Exception $exception) {
  70. myLog('HttpRequest')->error('请求上游失败:', [
  71. 'url' => $url,
  72. 'query' => $query,
  73. 'exceptionMessage' => $exception->getMessage(),
  74. 'traceInfo' => is_null($traceContext) ? '' : $traceContext->getTraceInfo,
  75. ]);
  76. }
  77. return false;
  78. }
  79. }