1 <?php 2 3 namespace GuzzleHttp; 4 5 use GuzzleHttp\Exception\GuzzleException; 6 use GuzzleHttp\Promise\PromiseInterface; 7 use Psr\Http\Message\ResponseInterface; 8 use Psr\Http\Message\UriInterface; 9 10 /** 11 * Client interface for sending HTTP requests. 12 */ 13 trait ClientTrait 14 { 15 /** 16 * Create and send an HTTP request. 17 * 18 * Use an absolute path to override the base path of the client, or a 19 * relative path to append to the base path of the client. The URL can 20 * contain the query string as well. 21 * 22 * @param string $method HTTP method. 23 * @param string|UriInterface $uri URI object or string. 24 * @param array $options Request options to apply. 25 * 26 * @throws GuzzleException 27 */ 28 abstract public function request(string $method, $uri, array $options = []): ResponseInterface; 29 30 /** 31 * Create and send an HTTP GET request. 32 * 33 * Use an absolute path to override the base path of the client, or a 34 * relative path to append to the base path of the client. The URL can 35 * contain the query string as well. 36 * 37 * @param string|UriInterface $uri URI object or string. 38 * @param array $options Request options to apply. 39 * 40 * @throws GuzzleException 41 */ 42 public function get($uri, array $options = []): ResponseInterface 43 { 44 return $this->request('GET', $uri, $options); 45 } 46 47 /** 48 * Create and send an HTTP HEAD request. 49 * 50 * Use an absolute path to override the base path of the client, or a 51 * relative path to append to the base path of the client. The URL can 52 * contain the query string as well. 53 * 54 * @param string|UriInterface $uri URI object or string. 55 * @param array $options Request options to apply. 56 * 57 * @throws GuzzleException 58 */ 59 public function head($uri, array $options = []): ResponseInterface 60 { 61 return $this->request('HEAD', $uri, $options); 62 } 63 64 /** 65 * Create and send an HTTP PUT request. 66 * 67 * Use an absolute path to override the base path of the client, or a 68 * relative path to append to the base path of the client. The URL can 69 * contain the query string as well. 70 * 71 * @param string|UriInterface $uri URI object or string. 72 * @param array $options Request options to apply. 73 * 74 * @throws GuzzleException 75 */ 76 public function put($uri, array $options = []): ResponseInterface 77 { 78 return $this->request('PUT', $uri, $options); 79 } 80 81 /** 82 * Create and send an HTTP POST request. 83 * 84 * Use an absolute path to override the base path of the client, or a 85 * relative path to append to the base path of the client. The URL can 86 * contain the query string as well. 87 * 88 * @param string|UriInterface $uri URI object or string. 89 * @param array $options Request options to apply. 90 * 91 * @throws GuzzleException 92 */ 93 public function post($uri, array $options = []): ResponseInterface 94 { 95 return $this->request('POST', $uri, $options); 96 } 97 98 /** 99 * Create and send an HTTP PATCH request. 100 * 101 * Use an absolute path to override the base path of the client, or a 102 * relative path to append to the base path of the client. The URL can 103 * contain the query string as well. 104 * 105 * @param string|UriInterface $uri URI object or string. 106 * @param array $options Request options to apply. 107 * 108 * @throws GuzzleException 109 */ 110 public function patch($uri, array $options = []): ResponseInterface 111 { 112 return $this->request('PATCH', $uri, $options); 113 } 114 115 /** 116 * Create and send an HTTP DELETE request. 117 * 118 * Use an absolute path to override the base path of the client, or a 119 * relative path to append to the base path of the client. The URL can 120 * contain the query string as well. 121 * 122 * @param string|UriInterface $uri URI object or string. 123 * @param array $options Request options to apply. 124 * 125 * @throws GuzzleException 126 */ 127 public function delete($uri, array $options = []): ResponseInterface 128 { 129 return $this->request('DELETE', $uri, $options); 130 } 131 132 /** 133 * Create and send an asynchronous HTTP request. 134 * 135 * Use an absolute path to override the base path of the client, or a 136 * relative path to append to the base path of the client. The URL can 137 * contain the query string as well. Use an array to provide a URL 138 * template and additional variables to use in the URL template expansion. 139 * 140 * @param string $method HTTP method 141 * @param string|UriInterface $uri URI object or string. 142 * @param array $options Request options to apply. 143 */ 144 abstract public function requestAsync(string $method, $uri, array $options = []): PromiseInterface; 145 146 /** 147 * Create and send an asynchronous HTTP GET request. 148 * 149 * Use an absolute path to override the base path of the client, or a 150 * relative path to append to the base path of the client. The URL can 151 * contain the query string as well. Use an array to provide a URL 152 * template and additional variables to use in the URL template expansion. 153 * 154 * @param string|UriInterface $uri URI object or string. 155 * @param array $options Request options to apply. 156 */ 157 public function getAsync($uri, array $options = []): PromiseInterface 158 { 159 return $this->requestAsync('GET', $uri, $options); 160 } 161 162 /** 163 * Create and send an asynchronous HTTP HEAD request. 164 * 165 * Use an absolute path to override the base path of the client, or a 166 * relative path to append to the base path of the client. The URL can 167 * contain the query string as well. Use an array to provide a URL 168 * template and additional variables to use in the URL template expansion. 169 * 170 * @param string|UriInterface $uri URI object or string. 171 * @param array $options Request options to apply. 172 */ 173 public function headAsync($uri, array $options = []): PromiseInterface 174 { 175 return $this->requestAsync('HEAD', $uri, $options); 176 } 177 178 /** 179 * Create and send an asynchronous HTTP PUT request. 180 * 181 * Use an absolute path to override the base path of the client, or a 182 * relative path to append to the base path of the client. The URL can 183 * contain the query string as well. Use an array to provide a URL 184 * template and additional variables to use in the URL template expansion. 185 * 186 * @param string|UriInterface $uri URI object or string. 187 * @param array $options Request options to apply. 188 */ 189 public function putAsync($uri, array $options = []): PromiseInterface 190 { 191 return $this->requestAsync('PUT', $uri, $options); 192 } 193 194 /** 195 * Create and send an asynchronous HTTP POST request. 196 * 197 * Use an absolute path to override the base path of the client, or a 198 * relative path to append to the base path of the client. The URL can 199 * contain the query string as well. Use an array to provide a URL 200 * template and additional variables to use in the URL template expansion. 201 * 202 * @param string|UriInterface $uri URI object or string. 203 * @param array $options Request options to apply. 204 */ 205 public function postAsync($uri, array $options = []): PromiseInterface 206 { 207 return $this->requestAsync('POST', $uri, $options); 208 } 209 210 /** 211 * Create and send an asynchronous HTTP PATCH request. 212 * 213 * Use an absolute path to override the base path of the client, or a 214 * relative path to append to the base path of the client. The URL can 215 * contain the query string as well. Use an array to provide a URL 216 * template and additional variables to use in the URL template expansion. 217 * 218 * @param string|UriInterface $uri URI object or string. 219 * @param array $options Request options to apply. 220 */ 221 public function patchAsync($uri, array $options = []): PromiseInterface 222 { 223 return $this->requestAsync('PATCH', $uri, $options); 224 } 225 226 /** 227 * Create and send an asynchronous HTTP DELETE request. 228 * 229 * Use an absolute path to override the base path of the client, or a 230 * relative path to append to the base path of the client. The URL can 231 * contain the query string as well. Use an array to provide a URL 232 * template and additional variables to use in the URL template expansion. 233 * 234 * @param string|UriInterface $uri URI object or string. 235 * @param array $options Request options to apply. 236 */ 237 public function deleteAsync($uri, array $options = []): PromiseInterface 238 { 239 return $this->requestAsync('DELETE', $uri, $options); 240 } 241 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body