Http.php 9.1 KB

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