1<?php 2namespace GuzzleHttp; 3 4use GuzzleHttp\Exception\GuzzleException; 5use GuzzleHttp\Promise\PromiseInterface; 6use Psr\Http\Message\RequestInterface; 7use Psr\Http\Message\ResponseInterface; 8use Psr\Http\Message\UriInterface; 9 10/** 11 * Client interface for sending HTTP requests. 12 */ 13interface ClientInterface 14{ 15 /** 16 * @deprecated Will be removed in Guzzle 7.0.0 17 */ 18 const VERSION = '6.5.5'; 19 20 /** 21 * Send an HTTP request. 22 * 23 * @param RequestInterface $request Request to send 24 * @param array $options Request options to apply to the given 25 * request and to the transfer. 26 * 27 * @return ResponseInterface 28 * @throws GuzzleException 29 */ 30 public function send(RequestInterface $request, array $options = []); 31 32 /** 33 * Asynchronously send an HTTP request. 34 * 35 * @param RequestInterface $request Request to send 36 * @param array $options Request options to apply to the given 37 * request and to the transfer. 38 * 39 * @return PromiseInterface 40 */ 41 public function sendAsync(RequestInterface $request, array $options = []); 42 43 /** 44 * Create and send an HTTP request. 45 * 46 * Use an absolute path to override the base path of the client, or a 47 * relative path to append to the base path of the client. The URL can 48 * contain the query string as well. 49 * 50 * @param string $method HTTP method. 51 * @param string|UriInterface $uri URI object or string. 52 * @param array $options Request options to apply. 53 * 54 * @return ResponseInterface 55 * @throws GuzzleException 56 */ 57 public function request($method, $uri, array $options = []); 58 59 /** 60 * Create and send an asynchronous HTTP request. 61 * 62 * Use an absolute path to override the base path of the client, or a 63 * relative path to append to the base path of the client. The URL can 64 * contain the query string as well. Use an array to provide a URL 65 * template and additional variables to use in the URL template expansion. 66 * 67 * @param string $method HTTP method 68 * @param string|UriInterface $uri URI object or string. 69 * @param array $options Request options to apply. 70 * 71 * @return PromiseInterface 72 */ 73 public function requestAsync($method, $uri, array $options = []); 74 75 /** 76 * Get a client configuration option. 77 * 78 * These options include default request options of the client, a "handler" 79 * (if utilized by the concrete client), and a "base_uri" if utilized by 80 * the concrete client. 81 * 82 * @param string|null $option The config option to retrieve. 83 * 84 * @return mixed 85 */ 86 public function getConfig($option = null); 87} 88