Http.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace Illuminate\Support\Facades;
  3. use Illuminate\Http\Client\Factory;
  4. /**
  5. * @method static \Illuminate\Http\Client\Factory globalMiddleware(callable $middleware)
  6. * @method static \Illuminate\Http\Client\Factory globalRequestMiddleware(callable $middleware)
  7. * @method static \Illuminate\Http\Client\Factory globalResponseMiddleware(callable $middleware)
  8. * @method static \Illuminate\Http\Client\Factory globalOptions(array $options)
  9. * @method static \GuzzleHttp\Promise\PromiseInterface response(array|string|null $body = null, int $status = 200, array $headers = [])
  10. * @method static \Illuminate\Http\Client\ResponseSequence sequence(array $responses = [])
  11. * @method static \Illuminate\Http\Client\Factory allowStrayRequests()
  12. * @method static void recordRequestResponsePair(\Illuminate\Http\Client\Request $request, \Illuminate\Http\Client\Response $response)
  13. * @method static void assertSent(callable $callback)
  14. * @method static void assertSentInOrder(array $callbacks)
  15. * @method static void assertNotSent(callable $callback)
  16. * @method static void assertNothingSent()
  17. * @method static void assertSentCount(int $count)
  18. * @method static void assertSequencesAreEmpty()
  19. * @method static \Illuminate\Support\Collection recorded(callable $callback = null)
  20. * @method static \Illuminate\Contracts\Events\Dispatcher|null getDispatcher()
  21. * @method static array getGlobalMiddleware()
  22. * @method static void macro(string $name, object|callable $macro)
  23. * @method static void mixin(object $mixin, bool $replace = true)
  24. * @method static bool hasMacro(string $name)
  25. * @method static void flushMacros()
  26. * @method static mixed macroCall(string $method, array $parameters)
  27. * @method static \Illuminate\Http\Client\PendingRequest baseUrl(string $url)
  28. * @method static \Illuminate\Http\Client\PendingRequest withBody(\Psr\Http\Message\StreamInterface|string $content, string $contentType = 'application/json')
  29. * @method static \Illuminate\Http\Client\PendingRequest asJson()
  30. * @method static \Illuminate\Http\Client\PendingRequest asForm()
  31. * @method static \Illuminate\Http\Client\PendingRequest attach(string|array $name, string|resource $contents = '', string|null $filename = null, array $headers = [])
  32. * @method static \Illuminate\Http\Client\PendingRequest asMultipart()
  33. * @method static \Illuminate\Http\Client\PendingRequest bodyFormat(string $format)
  34. * @method static \Illuminate\Http\Client\PendingRequest withQueryParameters(array $parameters)
  35. * @method static \Illuminate\Http\Client\PendingRequest contentType(string $contentType)
  36. * @method static \Illuminate\Http\Client\PendingRequest acceptJson()
  37. * @method static \Illuminate\Http\Client\PendingRequest accept(string $contentType)
  38. * @method static \Illuminate\Http\Client\PendingRequest withHeaders(array $headers)
  39. * @method static \Illuminate\Http\Client\PendingRequest withHeader(string $name, mixed $value)
  40. * @method static \Illuminate\Http\Client\PendingRequest replaceHeaders(array $headers)
  41. * @method static \Illuminate\Http\Client\PendingRequest withBasicAuth(string $username, string $password)
  42. * @method static \Illuminate\Http\Client\PendingRequest withDigestAuth(string $username, string $password)
  43. * @method static \Illuminate\Http\Client\PendingRequest withToken(string $token, string $type = 'Bearer')
  44. * @method static \Illuminate\Http\Client\PendingRequest withUserAgent(string|bool $userAgent)
  45. * @method static \Illuminate\Http\Client\PendingRequest withUrlParameters(array $parameters = [])
  46. * @method static \Illuminate\Http\Client\PendingRequest withCookies(array $cookies, string $domain)
  47. * @method static \Illuminate\Http\Client\PendingRequest maxRedirects(int $max)
  48. * @method static \Illuminate\Http\Client\PendingRequest withoutRedirecting()
  49. * @method static \Illuminate\Http\Client\PendingRequest withoutVerifying()
  50. * @method static \Illuminate\Http\Client\PendingRequest sink(string|resource $to)
  51. * @method static \Illuminate\Http\Client\PendingRequest timeout(int $seconds)
  52. * @method static \Illuminate\Http\Client\PendingRequest connectTimeout(int $seconds)
  53. * @method static \Illuminate\Http\Client\PendingRequest retry(array|int $times, \Closure|int $sleepMilliseconds = 0, callable|null $when = null, bool $throw = true)
  54. * @method static \Illuminate\Http\Client\PendingRequest withOptions(array $options)
  55. * @method static \Illuminate\Http\Client\PendingRequest withMiddleware(callable $middleware)
  56. * @method static \Illuminate\Http\Client\PendingRequest withRequestMiddleware(callable $middleware)
  57. * @method static \Illuminate\Http\Client\PendingRequest withResponseMiddleware(callable $middleware)
  58. * @method static \Illuminate\Http\Client\PendingRequest beforeSending(callable $callback)
  59. * @method static \Illuminate\Http\Client\PendingRequest throw(callable|null $callback = null)
  60. * @method static \Illuminate\Http\Client\PendingRequest throwIf(callable|bool $condition, callable|null $throwCallback = null)
  61. * @method static \Illuminate\Http\Client\PendingRequest throwUnless(bool $condition)
  62. * @method static \Illuminate\Http\Client\PendingRequest dump()
  63. * @method static \Illuminate\Http\Client\PendingRequest dd()
  64. * @method static \Illuminate\Http\Client\Response get(string $url, array|string|null $query = null)
  65. * @method static \Illuminate\Http\Client\Response head(string $url, array|string|null $query = null)
  66. * @method static \Illuminate\Http\Client\Response post(string $url, array $data = [])
  67. * @method static \Illuminate\Http\Client\Response patch(string $url, array $data = [])
  68. * @method static \Illuminate\Http\Client\Response put(string $url, array $data = [])
  69. * @method static \Illuminate\Http\Client\Response delete(string $url, array $data = [])
  70. * @method static array pool(callable $callback)
  71. * @method static \Illuminate\Http\Client\Response send(string $method, string $url, array $options = [])
  72. * @method static \GuzzleHttp\Client buildClient()
  73. * @method static \GuzzleHttp\Client createClient(\GuzzleHttp\HandlerStack $handlerStack)
  74. * @method static \GuzzleHttp\HandlerStack buildHandlerStack()
  75. * @method static \GuzzleHttp\HandlerStack pushHandlers(\GuzzleHttp\HandlerStack $handlerStack)
  76. * @method static \Closure buildBeforeSendingHandler()
  77. * @method static \Closure buildRecorderHandler()
  78. * @method static \Closure buildStubHandler()
  79. * @method static \GuzzleHttp\Psr7\RequestInterface runBeforeSendingCallbacks(\GuzzleHttp\Psr7\RequestInterface $request, array $options)
  80. * @method static array mergeOptions(array ...$options)
  81. * @method static \Illuminate\Http\Client\PendingRequest stub(callable $callback)
  82. * @method static \Illuminate\Http\Client\PendingRequest async(bool $async = true)
  83. * @method static \GuzzleHttp\Promise\PromiseInterface|null getPromise()
  84. * @method static \Illuminate\Http\Client\PendingRequest setClient(\GuzzleHttp\Client $client)
  85. * @method static \Illuminate\Http\Client\PendingRequest setHandler(callable $handler)
  86. * @method static array getOptions()
  87. * @method static \Illuminate\Http\Client\PendingRequest|mixed when(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)
  88. * @method static \Illuminate\Http\Client\PendingRequest|mixed unless(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)
  89. *
  90. * @see \Illuminate\Http\Client\Factory
  91. */
  92. class Http extends Facade
  93. {
  94. /**
  95. * Get the registered name of the component.
  96. *
  97. * @return string
  98. */
  99. protected static function getFacadeAccessor()
  100. {
  101. return Factory::class;
  102. }
  103. /**
  104. * Register a stub callable that will intercept requests and be able to return stub responses.
  105. *
  106. * @param \Closure|array $callback
  107. * @return \Illuminate\Http\Client\Factory
  108. */
  109. public static function fake($callback = null)
  110. {
  111. return tap(static::getFacadeRoot(), function ($fake) use ($callback) {
  112. static::swap($fake->fake($callback));
  113. });
  114. }
  115. /**
  116. * Register a response sequence for the given URL pattern.
  117. *
  118. * @param string $urlPattern
  119. * @return \Illuminate\Http\Client\ResponseSequence
  120. */
  121. public static function fakeSequence(string $urlPattern = '*')
  122. {
  123. $fake = tap(static::getFacadeRoot(), function ($fake) {
  124. static::swap($fake);
  125. });
  126. return $fake->fakeSequence($urlPattern);
  127. }
  128. /**
  129. * Indicate that an exception should be thrown if any request is not faked.
  130. *
  131. * @return \Illuminate\Http\Client\Factory
  132. */
  133. public static function preventStrayRequests()
  134. {
  135. return tap(static::getFacadeRoot(), function ($fake) {
  136. static::swap($fake->preventStrayRequests());
  137. });
  138. }
  139. /**
  140. * Stub the given URL using the given callback.
  141. *
  142. * @param string $url
  143. * @param \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface|callable $callback
  144. * @return \Illuminate\Http\Client\Factory
  145. */
  146. public static function stubUrl($url, $callback)
  147. {
  148. return tap(static::getFacadeRoot(), function ($fake) use ($url, $callback) {
  149. static::swap($fake->stubUrl($url, $callback));
  150. });
  151. }
  152. }