f0d6cde5
xu
vendor
|
1
2
3
4
|
<?php
namespace AlibabaCloud\Client\Request;
|
0c34aba8
xu
更新阿里云短信接口
|
5
6
7
8
9
10
11
12
|
use Exception;
use ArrayAccess;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Uri;
use GuzzleHttp\Middleware;
use AlibabaCloud\Client\SDK;
use GuzzleHttp\HandlerStack;
use AlibabaCloud\Client\Encode;
|
f0d6cde5
xu
vendor
|
13
|
use AlibabaCloud\Client\AlibabaCloud;
|
f0d6cde5
xu
vendor
|
14
|
use AlibabaCloud\Client\Filter\Filter;
|
0c34aba8
xu
更新阿里云短信接口
|
15
16
17
18
|
use AlibabaCloud\Client\Result\Result;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Promise\PromiseInterface;
use AlibabaCloud\Client\Filter\ApiFilter;
|
f0d6cde5
xu
vendor
|
19
|
use AlibabaCloud\Client\Log\LogFormatter;
|
0c34aba8
xu
更新阿里云短信接口
|
20
21
22
23
24
|
use AlibabaCloud\Client\Traits\HttpTrait;
use GuzzleHttp\Exception\GuzzleException;
use AlibabaCloud\Client\Filter\HttpFilter;
use AlibabaCloud\Client\Traits\RegionTrait;
use AlibabaCloud\Client\Filter\ClientFilter;
|
f0d6cde5
xu
vendor
|
25
|
use AlibabaCloud\Client\Request\Traits\AcsTrait;
|
f0d6cde5
xu
vendor
|
26
|
use AlibabaCloud\Client\Traits\ArrayAccessTrait;
|
f0d6cde5
xu
vendor
|
27
|
use AlibabaCloud\Client\Traits\ObjectAccessTrait;
|
0c34aba8
xu
更新阿里云短信接口
|
28
29
30
31
32
33
|
use AlibabaCloud\Client\Request\Traits\RetryTrait;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Client\Request\Traits\ClientTrait;
use AlibabaCloud\Client\Request\Traits\DeprecatedTrait;
use AlibabaCloud\Client\Credentials\Providers\CredentialsProvider;
|
f0d6cde5
xu
vendor
|
34
35
36
37
38
39
|
/**
* Class Request
*
* @package AlibabaCloud\Client\Request
*
|
0c34aba8
xu
更新阿里云短信接口
|
40
41
|
* @method string stringToSign()
* @method string resolveParameter()
|
f0d6cde5
xu
vendor
|
42
|
*/
|
0c34aba8
xu
更新阿里云短信接口
|
43
|
abstract class Request implements ArrayAccess
|
f0d6cde5
xu
vendor
|
44
45
46
47
|
{
use DeprecatedTrait;
use HttpTrait;
use RegionTrait;
|
f0d6cde5
xu
vendor
|
48
49
50
51
|
use ClientTrait;
use AcsTrait;
use ArrayAccessTrait;
use ObjectAccessTrait;
|
0c34aba8
xu
更新阿里云短信接口
|
52
|
use RetryTrait;
|
f0d6cde5
xu
vendor
|
53
54
55
56
57
58
59
60
61
62
63
64
|
/**
* Request Connect Timeout
*/
const CONNECT_TIMEOUT = 5;
/**
* Request Timeout
*/
const TIMEOUT = 10;
/**
|
0c34aba8
xu
更新阿里云短信接口
|
65
|
* @var string HTTP Method
|
f0d6cde5
xu
vendor
|
66
|
*/
|
0c34aba8
xu
更新阿里云短信接口
|
67
|
public $method = 'GET';
|
f0d6cde5
xu
vendor
|
68
69
70
71
|
/**
* @var string
*/
|
0c34aba8
xu
更新阿里云短信接口
|
72
|
public $format = 'JSON';
|
f0d6cde5
xu
vendor
|
73
74
|
/**
|
0c34aba8
xu
更新阿里云短信接口
|
75
|
* @var string HTTP Scheme
|
f0d6cde5
xu
vendor
|
76
|
*/
|
0c34aba8
xu
更新阿里云短信接口
|
77
|
protected $scheme = 'http';
|
f0d6cde5
xu
vendor
|
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
/**
* @var string
*/
public $client;
/**
* @var Uri
*/
public $uri;
/**
* @var array The original parameters of the request.
*/
public $data = [];
/**
|
f0d6cde5
xu
vendor
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
* @var array
*/
private $userAgent = [];
/**
* Request constructor.
*
* @param array $options
*
* @throws ClientException
*/
public function __construct(array $options = [])
{
$this->client = CredentialsProvider::getDefaultName();
$this->uri = new Uri();
$this->uri = $this->uri->withScheme($this->scheme);
$this->options['http_errors'] = false;
$this->options['connect_timeout'] = self::CONNECT_TIMEOUT;
$this->options['timeout'] = self::TIMEOUT;
|
f0d6cde5
xu
vendor
|
114
|
|
0c34aba8
xu
更新阿里云短信接口
|
115
|
// Turn on debug mode based on environment variable.
|
f0d6cde5
xu
vendor
|
116
117
118
|
if (strtolower(\AlibabaCloud\Client\env('DEBUG')) === 'sdk') {
$this->options['debug'] = true;
}
|
0c34aba8
xu
更新阿里云短信接口
|
119
120
121
122
123
|
// Rewrite configuration if the user has a configuration.
if ($options !== []) {
$this->options($options);
}
|
f0d6cde5
xu
vendor
|
124
125
126
127
128
129
130
131
132
133
134
|
}
/**
* @param string $name
* @param string $value
*
* @return $this
* @throws ClientException
*/
public function appendUserAgent($name, $value)
{
|
0c34aba8
xu
更新阿里云短信接口
|
135
|
$filter_name = Filter::name($name);
|
f0d6cde5
xu
vendor
|
136
|
|
0c34aba8
xu
更新阿里云短信接口
|
137
138
|
if (!UserAgent::isGuarded($filter_name)) {
$this->userAgent[$filter_name] = Filter::value($value);
|
f0d6cde5
xu
vendor
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
}
return $this;
}
/**
* @param array $userAgent
*
* @return $this
*/
public function withUserAgent(array $userAgent)
{
$this->userAgent = UserAgent::clean($userAgent);
return $this;
}
/**
|
0c34aba8
xu
更新阿里云短信接口
|
157
|
* Set Accept format.
|
f0d6cde5
xu
vendor
|
158
159
160
161
162
163
164
165
|
*
* @param string $format
*
* @return $this
* @throws ClientException
*/
public function format($format)
{
|
0c34aba8
xu
更新阿里云短信接口
|
166
|
$this->format = ApiFilter::format($format);
|
f0d6cde5
xu
vendor
|
167
|
|
0c34aba8
xu
更新阿里云短信接口
|
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
return $this;
}
/**
* @param $contentType
*
* @return $this
* @throws ClientException
*/
public function contentType($contentType)
{
$this->options['headers']['Content-Type'] = HttpFilter::contentType($contentType);
return $this;
}
/**
* @param string $accept
*
* @return $this
* @throws ClientException
*/
public function accept($accept)
{
$this->options['headers']['Accept'] = HttpFilter::accept($accept);
|
f0d6cde5
xu
vendor
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
return $this;
}
/**
* Set the request body.
*
* @param string $body
*
* @return $this
* @throws ClientException
*/
public function body($body)
{
|
0c34aba8
xu
更新阿里云短信接口
|
207
|
$this->options['body'] = HttpFilter::body($body);
|
f0d6cde5
xu
vendor
|
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
return $this;
}
/**
* Set the json as body.
*
* @param array|object $content
*
* @return $this
* @throws ClientException
*/
public function jsonBody($content)
{
if (!\is_array($content) && !\is_object($content)) {
throw new ClientException(
'jsonBody only accepts an array or object',
SDK::INVALID_ARGUMENT
);
}
return $this->body(\json_encode($content));
}
/**
* Set the request scheme.
*
* @param string $scheme
*
* @return $this
* @throws ClientException
*/
public function scheme($scheme)
{
|
0c34aba8
xu
更新阿里云短信接口
|
242
243
|
$this->scheme = HttpFilter::scheme($scheme);
$this->uri = $this->uri->withScheme($scheme);
|
f0d6cde5
xu
vendor
|
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
return $this;
}
/**
* Set the request host.
*
* @param string $host
*
* @return $this
* @throws ClientException
*/
public function host($host)
{
|
0c34aba8
xu
更新阿里云短信接口
|
258
|
$this->uri = $this->uri->withHost(HttpFilter::host($host));
|
f0d6cde5
xu
vendor
|
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
|
return $this;
}
/**
* @param string $method
*
* @return $this
* @throws ClientException
*/
public function method($method)
{
$this->method = HttpFilter::method($method);
return $this;
}
/**
* @param string $clientName
*
* @return $this
* @throws ClientException
*/
public function client($clientName)
{
|
0c34aba8
xu
更新阿里云短信接口
|
284
|
$this->client = ClientFilter::clientName($clientName);
|
f0d6cde5
xu
vendor
|
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
|
return $this;
}
/**
* @return bool
* @throws ClientException
*/
public function isDebug()
{
if (isset($this->options['debug'])) {
return $this->options['debug'] === true;
}
if (isset($this->httpClient()->options['debug'])) {
return $this->httpClient()->options['debug'] === true;
}
return false;
}
/**
|
f0d6cde5
xu
vendor
|
307
308
309
|
* @throws ClientException
* @throws ServerException
*/
|
0c34aba8
xu
更新阿里云短信接口
|
310
|
public function resolveOption()
|
f0d6cde5
xu
vendor
|
311
312
313
|
{
$this->options['headers']['User-Agent'] = UserAgent::toString($this->userAgent);
|
0c34aba8
xu
更新阿里云短信接口
|
314
315
316
317
|
$this->cleanQuery();
$this->cleanFormParams();
$this->resolveHost();
$this->resolveParameter();
|
f0d6cde5
xu
vendor
|
318
319
320
|
if (isset($this->options['form_params'])) {
$this->options['form_params'] = \GuzzleHttp\Psr7\parse_query(
|
0c34aba8
xu
更新阿里云短信接口
|
321
|
Encode::create($this->options['form_params'])->toString()
|
f0d6cde5
xu
vendor
|
322
323
324
325
|
);
}
$this->mergeOptionsIntoClient();
|
f0d6cde5
xu
vendor
|
326
327
328
|
}
/**
|
0c34aba8
xu
更新阿里云短信接口
|
329
330
331
|
* @return Result
* @throws ClientException
* @throws ServerException
|
f0d6cde5
xu
vendor
|
332
|
*/
|
0c34aba8
xu
更新阿里云短信接口
|
333
|
public function request()
|
f0d6cde5
xu
vendor
|
334
|
{
|
0c34aba8
xu
更新阿里云短信接口
|
335
336
|
$this->resolveOption();
$result = $this->response();
|
f0d6cde5
xu
vendor
|
337
|
|
0c34aba8
xu
更新阿里云短信接口
|
338
339
|
if ($this->shouldServerRetry($result)) {
return $this->request();
|
f0d6cde5
xu
vendor
|
340
|
}
|
f0d6cde5
xu
vendor
|
341
|
|
0c34aba8
xu
更新阿里云短信接口
|
342
343
|
if (!$result->isSuccess()) {
throw new ServerException($result);
|
f0d6cde5
xu
vendor
|
344
|
}
|
0c34aba8
xu
更新阿里云短信接口
|
345
346
|
return $result;
|
f0d6cde5
xu
vendor
|
347
348
|
}
|
0c34aba8
xu
更新阿里云短信接口
|
349
350
351
|
/***
* @return PromiseInterface
* @throws Exception
|
f0d6cde5
xu
vendor
|
352
|
*/
|
0c34aba8
xu
更新阿里云短信接口
|
353
|
public function requestAsync()
|
f0d6cde5
xu
vendor
|
354
|
{
|
0c34aba8
xu
更新阿里云短信接口
|
355
|
$this->resolveOption();
|
f0d6cde5
xu
vendor
|
356
|
|
0c34aba8
xu
更新阿里云短信接口
|
357
358
359
360
361
|
return self::createClient($this)->requestAsync(
$this->method,
(string)$this->uri,
$this->options
);
|
f0d6cde5
xu
vendor
|
362
363
364
|
}
/**
|
0c34aba8
xu
更新阿里云短信接口
|
365
366
|
* @param Request $request
*
|
f0d6cde5
xu
vendor
|
367
368
369
|
* @return Client
* @throws Exception
*/
|
0c34aba8
xu
更新阿里云短信接口
|
370
|
public static function createClient(Request $request = null)
|
f0d6cde5
xu
vendor
|
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
|
{
if (AlibabaCloud::hasMock()) {
$stack = HandlerStack::create(AlibabaCloud::getMock());
} else {
$stack = HandlerStack::create();
}
if (AlibabaCloud::isRememberHistory()) {
$stack->push(Middleware::history(AlibabaCloud::referenceHistory()));
}
if (AlibabaCloud::getLogger()) {
$stack->push(Middleware::log(
AlibabaCloud::getLogger(),
new LogFormatter(AlibabaCloud::getLogFormat())
));
}
|
0c34aba8
xu
更新阿里云短信接口
|
389
390
391
392
393
394
395
|
$stack->push(Middleware::mapResponse(static function (ResponseInterface $response) use ($request) {
return new Result($response, $request);
}));
self::$config['handler'] = $stack;
return new Client(self::$config);
|
f0d6cde5
xu
vendor
|
396
397
398
399
400
401
402
403
404
|
}
/**
* @throws ClientException
* @throws Exception
*/
private function response()
{
try {
|
0c34aba8
xu
更新阿里云短信接口
|
405
|
return self::createClient($this)->request(
|
f0d6cde5
xu
vendor
|
406
407
408
409
|
$this->method,
(string)$this->uri,
$this->options
);
|
0c34aba8
xu
更新阿里云短信接口
|
410
411
412
413
|
} catch (GuzzleException $exception) {
if ($this->shouldClientRetry($exception)) {
return $this->response();
}
|
f0d6cde5
xu
vendor
|
414
|
throw new ClientException(
|
0c34aba8
xu
更新阿里云短信接口
|
415
|
$exception->getMessage(),
|
f0d6cde5
xu
vendor
|
416
|
SDK::SERVER_UNREACHABLE,
|
0c34aba8
xu
更新阿里云短信接口
|
417
|
$exception
|
f0d6cde5
xu
vendor
|
418
419
420
421
422
|
);
}
}
/**
|
0c34aba8
xu
更新阿里云短信接口
|
423
424
425
|
* Remove redundant Query
*
* @codeCoverageIgnore
|
f0d6cde5
xu
vendor
|
426
|
*/
|
0c34aba8
xu
更新阿里云短信接口
|
427
|
private function cleanQuery()
|
f0d6cde5
xu
vendor
|
428
|
{
|
0c34aba8
xu
更新阿里云短信接口
|
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
|
if (isset($this->options['query']) && $this->options['query'] === []) {
unset($this->options['query']);
}
}
/**
* Remove redundant Headers
*
* @codeCoverageIgnore
*/
private function cleanFormParams()
{
if (isset($this->options['form_params']) && $this->options['form_params'] === []) {
unset($this->options['form_params']);
}
|
f0d6cde5
xu
vendor
|
444
445
|
}
}
|