Http.php 10 KB

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