1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Copyright (c) Padosoft.com 2016. |
4
|
|
|
*/ |
5
|
|
|
|
6
|
|
|
namespace Padosoft\HTTPClient; |
7
|
|
|
|
8
|
|
|
use Psr\Http\Message\StreamInterface; |
9
|
|
|
|
10
|
|
|
|
11
|
|
|
/** |
12
|
|
|
* Class RequestHelper |
13
|
|
|
* Simple Class to easy contruct you request. |
14
|
|
|
* @package Padosoft\HTTPClient |
15
|
|
|
*/ |
16
|
|
|
class RequestHelper |
17
|
|
|
{ |
18
|
|
|
/** |
19
|
|
|
* @var array |
20
|
|
|
*/ |
21
|
|
|
protected $options = array(); |
22
|
|
|
|
23
|
|
|
/** |
24
|
|
|
* RequestHelper constructor. |
25
|
|
|
*/ |
26
|
15 |
|
public function __construct() |
27
|
|
|
{ |
28
|
|
|
//set defaults |
29
|
15 |
|
$this->setDefaults(); |
30
|
15 |
|
} |
31
|
|
|
|
32
|
|
|
/** |
33
|
|
|
* allow_redirects: (bool|array) Controls redirect behavior. Pass false |
34
|
|
|
* to disable redirects, pass true to enable redirects, pass an |
35
|
|
|
* associative to provide custom redirect settings. Defaults to "false". |
36
|
|
|
* This option only works if your handler has the RedirectMiddleware. When |
37
|
|
|
* passing an associative array, you can provide the following key value |
38
|
|
|
* pairs: |
39
|
|
|
* |
40
|
|
|
* - max: (int, default=5) maximum number of allowed redirects. |
41
|
|
|
* - strict: (bool, default=false) Set to true to use strict redirects |
42
|
|
|
* meaning redirect POST requests with POST requests vs. doing what most |
43
|
|
|
* browsers do which is redirect POST requests with GET requests |
44
|
|
|
* - referer: (bool, default=true) Set to false to disable the Referer |
45
|
|
|
* header. |
46
|
|
|
* - protocols: (array, default=['http', 'https']) Allowed redirect |
47
|
|
|
* protocols. |
48
|
|
|
* - on_redirect: (callable) PHP callable that is invoked when a redirect |
49
|
|
|
* is encountered. The callable is invoked with the request, the redirect |
50
|
|
|
* response that was received, and the effective URI. Any return value |
51
|
|
|
* from the on_redirect function is ignored. |
52
|
|
|
* @param int $max |
53
|
|
|
* @param bool $strict |
54
|
|
|
* @param bool $referer |
55
|
|
|
* @param array $protocolsArray |
56
|
|
|
* @param callable|null $onRedirect |
57
|
|
|
* @return $this |
58
|
|
|
*/ |
59
|
|
|
public function setAllowRedirects($max=5,$strict=false,$referer=true,$protocolsArray=['http', 'https'],callable $onRedirect=null) |
60
|
|
|
{ |
61
|
|
|
if(!isset($max) || !preg_match("/^(0)$|^([1-9][0-9]*)$/",$max)) { |
62
|
|
|
$max=5; |
63
|
|
|
} |
64
|
|
|
if(!isset($strict) || !is_bool($strict)) { |
65
|
|
|
$strict=false; |
66
|
|
|
} |
67
|
|
|
if(!isset($referer) || !is_bool($referer)) { |
68
|
|
|
$referer=true; |
69
|
|
|
} |
70
|
|
|
|
71
|
|
|
if(!isset($protocolsArray) || !is_array($protocolsArray)) { |
72
|
|
|
$protocolsArray=['http', 'https']; |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
if(!is_callable($onRedirect)){ |
76
|
|
|
$onRedirect = null; |
77
|
|
|
} |
78
|
|
|
|
79
|
|
|
$this->options['allow_redirects'] = ['max' => $max |
80
|
|
|
, 'strict' => $strict |
81
|
|
|
, 'referer' => $referer |
82
|
|
|
, 'protocolsArray' => $protocolsArray |
83
|
|
|
, 'onRedirect' => $onRedirect |
84
|
|
|
]; |
85
|
|
|
return $this; |
86
|
|
|
} |
87
|
|
|
|
88
|
|
|
/** |
89
|
|
|
* auth: Pass HTTP authentication parameters to use |
90
|
|
|
* with the request. |
91
|
|
|
* |
92
|
|
|
* @param string $username |
93
|
|
|
* @param string $password |
94
|
|
|
* @param string $typeAuthentication |
95
|
|
|
* @return $this |
96
|
|
|
*/ |
97
|
6 |
|
public function setAuth($username, $password, $typeAuthentication=TypeAuthentication::BASIC) |
98
|
|
|
{ |
99
|
6 |
|
if(!TypeAuthentication::isValidValue($typeAuthentication)) { |
100
|
|
|
$typeAuthentication=TypeAuthentication::BASIC; |
101
|
|
|
} |
102
|
6 |
|
$this->options['auth'] = [$username, $password, $typeAuthentication]; |
103
|
6 |
|
return $this; |
104
|
|
|
} |
105
|
|
|
/** |
106
|
|
|
* body: (string|null|callable|iterator|object) Body to send in the |
107
|
|
|
* request. |
108
|
|
|
* @param (string|null|callable|iterator|object) $body |
109
|
|
|
* @return $this |
110
|
|
|
*/ |
111
|
|
|
public function setBody($body) |
112
|
|
|
{ |
113
|
|
|
if(null!==$body && !is_object($body) && !is_string($body) && !is_callable($body) && !is_a($body, \Iterator::class)) |
114
|
|
|
{ |
115
|
|
|
return $this; |
116
|
|
|
} |
117
|
|
|
|
118
|
|
|
$this->options['body'] = $body; |
119
|
|
|
return $this; |
120
|
|
|
} |
121
|
|
|
/** |
122
|
|
|
* cert: (string|array) Set to a string to specify the path to a file |
123
|
|
|
* containing a PEM formatted SSL client side certificate. If a password |
124
|
|
|
* is required, then set cert to an array containing the path to the PEM |
125
|
|
|
* file in the first array element followed by the certificate password |
126
|
|
|
* in the second array element. |
127
|
|
|
* |
128
|
|
|
* @param (string|array) $certificate |
129
|
|
|
* @return $this |
130
|
|
|
*/ |
131
|
|
|
public function setCert($certificate) |
132
|
|
|
{ |
133
|
|
|
if(!is_array($certificate) && !is_string($certificate)) |
134
|
|
|
{ |
135
|
|
|
return $this; |
136
|
|
|
} |
137
|
|
|
|
138
|
|
|
$this->options['cert'] = $certificate; |
139
|
|
|
return $this; |
140
|
|
|
} |
141
|
|
|
/** |
142
|
|
|
* cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface) |
143
|
|
|
* Specifies whether or not cookies are used in a request or what cookie |
144
|
|
|
* jar to use or what cookies to send. This option only works if your |
145
|
|
|
* handler has the `cookie` middleware. Valid values are `false` and |
146
|
|
|
* an instance of {@see GuzzleHttp\Cookie\CookieJarInterface}. |
147
|
|
|
* |
148
|
|
|
* @param (bool|GuzzleHttp\Cookie\CookieJarInterface) $cookies |
149
|
|
|
* @return $this |
150
|
|
|
*/ |
151
|
|
|
public function setCookies($cookies) |
152
|
|
|
{ |
153
|
|
|
if(!is_bool($$cookies) && !is_a($cookies, \GuzzleHttp\Cookie\CookieJarInterface::class)) |
154
|
|
|
{ |
155
|
|
|
$cookies = false; |
156
|
|
|
} |
157
|
|
|
|
158
|
|
|
$this->options['cookies'] = $cookies; |
159
|
|
|
return $this; |
160
|
|
|
} |
161
|
|
|
/** |
162
|
|
|
* connect_timeout: (float, default=0) Float describing the number of |
163
|
|
|
* seconds to wait while trying to connect to a server. Use 0 to wait |
164
|
|
|
* indefinitely (the default behavior). |
165
|
|
|
* @param int $secondConnectTimeout |
166
|
|
|
* @return $this |
167
|
|
|
*/ |
168
|
|
|
public function setConnectTimeout($secondConnectTimeout=0) |
169
|
|
|
{ |
170
|
|
|
$this->options['connect_timeout'] = (float) $secondConnectTimeout; |
171
|
|
|
return $this; |
172
|
|
|
} |
173
|
|
|
/** |
174
|
|
|
* debug: (bool|resource) Set to true or set to a PHP stream returned by |
175
|
|
|
* fopen() enable debug output with the HTTP handler used to send a |
176
|
|
|
* request. |
177
|
|
|
* @param $debug |
178
|
|
|
* @return $this |
179
|
|
|
*/ |
180
|
|
|
public function setDebug($debug) |
181
|
|
|
{ |
182
|
|
|
if(!is_resource($debug) && !is_bool($debug)) |
183
|
|
|
{ |
184
|
|
|
return $this; |
185
|
|
|
} |
186
|
|
|
|
187
|
|
|
$this->options['debug'] = $debug; |
188
|
|
|
return $this; |
189
|
|
|
} |
190
|
|
|
/** |
191
|
|
|
* decode_content: (bool, default=true) Specify whether or not |
192
|
|
|
* Content-Encoding responses (gzip, deflate, etc.) are automatically |
193
|
|
|
* decoded. |
194
|
|
|
* @return $this |
195
|
|
|
*/ |
196
|
|
|
public function setDecodeContentTrue() |
197
|
|
|
{ |
198
|
|
|
$this->options['decode_content']= true; |
199
|
|
|
return $this; |
200
|
|
|
} |
201
|
|
|
/** |
202
|
|
|
* decode_content: (bool, default=true) Specify whether or not |
203
|
|
|
* Content-Encoding responses (gzip, deflate, etc.) are automatically |
204
|
|
|
* decoded. |
205
|
|
|
* @return $this |
206
|
|
|
*/ |
207
|
|
|
public function setDecodeContentFalse() |
208
|
|
|
{ |
209
|
|
|
$this->options['decode_content']= false; |
210
|
|
|
return $this; |
211
|
|
|
} |
212
|
|
|
/** |
213
|
|
|
* delay: (int) The amount of time to delay before sending in milliseconds. |
214
|
|
|
* @param int $millisecondDelay |
215
|
|
|
* @return $this |
216
|
|
|
*/ |
217
|
|
|
public function setDelay($millisecondDelay) |
218
|
|
|
{ |
219
|
|
|
$this->options['delay'] = (int) $millisecondDelay; |
220
|
|
|
return $this; |
221
|
|
|
} |
222
|
|
|
/** |
223
|
|
|
* expect: (bool|integer) Controls the behavior of the |
224
|
|
|
* "Expect: 100-Continue" header. |
225
|
|
|
* |
226
|
|
|
* Set to `true` to enable the "Expect: 100-Continue" header for all |
227
|
|
|
* requests that sends a body. Set to `false` to disable the |
228
|
|
|
* "Expect: 100-Continue" header for all requests. Set to a number so that |
229
|
|
|
* the size of the payload must be greater than the number in order to send |
230
|
|
|
* the Expect header. Setting to a number will send the Expect header for |
231
|
|
|
* all requests in which the size of the payload cannot be determined or |
232
|
|
|
* where the body is not rewindable. |
233
|
|
|
* |
234
|
|
|
* By default, Guzzle will add the "Expect: 100-Continue" header when the |
235
|
|
|
* size of the body of a request is greater than 1 MB and a request is |
236
|
|
|
* using HTTP/1.1. |
237
|
|
|
* |
238
|
|
|
* @param (bool|integer) $expect |
239
|
|
|
* @return $this |
240
|
|
|
*/ |
241
|
|
|
public function setExpect($expect) |
242
|
|
|
{ |
243
|
|
|
if(!is_bool($expect) && !is_int($expect)){ |
244
|
|
|
return $this; |
245
|
|
|
} |
246
|
|
|
|
247
|
|
|
$this->options['expect']=$expect; |
248
|
|
|
return $this; |
249
|
|
|
} |
250
|
|
|
/** |
251
|
|
|
* form_params: (array) Associative array of form field names to values |
252
|
|
|
* where each value is a string or array of strings. Sets the Content-Type |
253
|
|
|
* header to application/x-www-form-urlencoded when no Content-Type header |
254
|
|
|
* is already present. |
255
|
|
|
* |
256
|
|
|
* @param array $form_params |
257
|
|
|
* @return $this |
258
|
|
|
*/ |
259
|
|
|
public function setFormParams($form_params) |
260
|
|
|
{ |
261
|
|
|
if(!is_array($form_params)){ |
262
|
|
|
return $this; |
263
|
|
|
} |
264
|
|
|
|
265
|
|
|
$this->options['form_params']=$form_params; |
266
|
|
|
return $this; |
267
|
|
|
} |
268
|
|
|
/** |
269
|
|
|
* headers: (array) Associative array of HTTP headers. Each value MUST be |
270
|
|
|
* a string or array of strings. |
271
|
|
|
* |
272
|
|
|
* @param array $headers |
273
|
|
|
* @return $this |
274
|
|
|
*/ |
275
|
|
|
public function setHeaders($headers) |
276
|
|
|
{ |
277
|
|
|
if(!is_array($headers)){ |
278
|
|
|
return $this; |
279
|
|
|
} |
280
|
|
|
|
281
|
|
|
$this->options['headers'] = $headers; |
282
|
|
|
return $this; |
283
|
|
|
} |
284
|
|
|
/** |
285
|
|
|
* http_errors: (bool, default=true) Set to false to disable exceptions |
286
|
|
|
* when a non- successful HTTP response is received. By default, |
287
|
|
|
* exceptions will be thrown for 4xx and 5xx responses. This option only |
288
|
|
|
* works if your handler has the `httpErrors` middleware. |
289
|
|
|
* |
290
|
|
|
* @return $this |
291
|
|
|
*/ |
292
|
6 |
|
public function setHttpErrorsTrue() |
293
|
|
|
{ |
294
|
6 |
|
$this->options['http_errors'] =true; |
295
|
6 |
|
return $this; |
296
|
|
|
} |
297
|
|
|
/** |
298
|
|
|
* http_errors: (bool, default=true) Set to false to disable exceptions |
299
|
|
|
* when a non- successful HTTP response is received. By default, |
300
|
|
|
* exceptions will be thrown for 4xx and 5xx responses. This option only |
301
|
|
|
* works if your handler has the `httpErrors` middleware. |
302
|
|
|
* |
303
|
|
|
* @return $this |
304
|
|
|
*/ |
305
|
15 |
|
public function setHttpErrorsFalse() |
306
|
|
|
{ |
307
|
15 |
|
$this->options['http_errors'] =false; |
308
|
15 |
|
return $this; |
309
|
|
|
} |
310
|
|
|
/** |
311
|
|
|
* json: (mixed) Adds JSON data to a request. |
312
|
|
|
* The provided value it will be JSON encoded |
313
|
|
|
* and a Content-Type header of application/json will be added to |
314
|
|
|
* the request if no Content-Type header is already present. |
315
|
|
|
* |
316
|
|
|
* @param $json |
317
|
|
|
* @return $this |
318
|
|
|
*/ |
319
|
6 |
|
public function setJson($json) |
320
|
|
|
{ |
321
|
6 |
|
$this->options['json'] = $json; |
322
|
6 |
|
return $this; |
323
|
|
|
} |
324
|
|
|
/** |
325
|
|
|
* @param Multipart $multipart |
326
|
|
|
* @return $this |
327
|
|
|
*/ |
328
|
|
|
public function setMultipart(Multipart $multipart) |
329
|
|
|
{ |
330
|
|
|
if($multipart===null){ |
331
|
|
|
return $this; |
332
|
|
|
} |
333
|
|
|
|
334
|
|
|
$this->options['multipart']= $multipart->getMultipartArray(); |
335
|
|
|
return $this; |
336
|
|
|
} |
337
|
|
|
/** |
338
|
|
|
* on_headers: (callable) A callable that is invoked when the HTTP headers |
339
|
|
|
* of the response have been received but the body has not yet begun to |
340
|
|
|
* download. |
341
|
|
|
* |
342
|
|
|
* @param callable $on_headers |
343
|
|
|
* @return $this |
344
|
|
|
*/ |
345
|
|
|
public function setOnHeaders(callable $on_headers) |
346
|
|
|
{ |
347
|
|
|
if(!is_callable($on_headers)){ |
348
|
|
|
return $this; |
349
|
|
|
} |
350
|
|
|
|
351
|
|
|
$this->options['on_headers']=$on_headers; |
352
|
|
|
return $this; |
353
|
|
|
} |
354
|
|
|
/** |
355
|
|
|
* on_stats: (callable) allows you to get access to transfer statistics of |
356
|
|
|
* a request and access the lower level transfer details of the handler |
357
|
|
|
* associated with your client. ``on_stats`` is a callable that is invoked |
358
|
|
|
* when a handler has finished sending a request. The callback is invoked |
359
|
|
|
* with transfer statistics about the request, the response received, or |
360
|
|
|
* the error encountered. Included in the data is the total amount of time |
361
|
|
|
* taken to send the request. |
362
|
|
|
* |
363
|
|
|
* @param callable $on_stats |
364
|
|
|
* @return $this |
365
|
|
|
*/ |
366
|
|
|
public function setOnStats(callable $on_stats) |
367
|
|
|
{ |
368
|
|
|
if(!is_callable($on_stats)){ |
369
|
|
|
return $this; |
370
|
|
|
} |
371
|
|
|
|
372
|
|
|
$this->options['on_stats'] = $on_stats; |
373
|
|
|
return $this; |
374
|
|
|
} |
375
|
|
|
/** |
376
|
|
|
* progress: (callable) Defines a function to invoke when transfer |
377
|
|
|
* progress is made. The function accepts the following positional |
378
|
|
|
* arguments: the total number of bytes expected to be downloaded, the |
379
|
|
|
* number of bytes downloaded so far, the number of bytes expected to be |
380
|
|
|
* uploaded, the number of bytes uploaded so far. |
381
|
|
|
* |
382
|
|
|
* @param callable $progress |
383
|
|
|
* @return $this |
384
|
|
|
*/ |
385
|
|
|
public function setProgress(callable $progress) |
386
|
|
|
{ |
387
|
|
|
if(!is_callable($progress)){ |
388
|
|
|
return $this; |
389
|
|
|
} |
390
|
|
|
|
391
|
|
|
$this->options['progress']= $progress; |
392
|
|
|
return $this; |
393
|
|
|
} |
394
|
|
|
/** |
395
|
|
|
* proxy: (string|array) Pass a string to specify an HTTP proxy, or an |
396
|
|
|
* array to specify different proxies for different protocols (where the |
397
|
|
|
* key is the protocol and the value is a proxy string). |
398
|
|
|
* |
399
|
|
|
* @param (string|array) $proxy |
400
|
|
|
* @return $this |
401
|
|
|
*/ |
402
|
|
|
public function setProxy($proxy) |
403
|
|
|
{ |
404
|
|
|
if(!is_array($proxy) && !is_string($proxy)){ |
405
|
|
|
return $this; |
406
|
|
|
} |
407
|
|
|
|
408
|
|
|
$this->options['proxy']= $proxy; |
409
|
|
|
return $this; |
410
|
|
|
} |
411
|
|
|
/** |
412
|
|
|
* query: (array|string) Associative array of query string values to add |
413
|
|
|
* to the request. This option uses PHP's http_build_query() to create |
414
|
|
|
* the string representation. Pass a string value if you need more |
415
|
|
|
* control than what this method provides |
416
|
|
|
* |
417
|
|
|
* @param (array|string) $query |
418
|
|
|
* @return $this |
419
|
|
|
*/ |
420
|
|
|
public function setQuery($query) |
421
|
|
|
{ |
422
|
|
|
if(!is_array($query) && !is_string($query)) { |
423
|
|
|
return $this; |
424
|
|
|
} |
425
|
|
|
|
426
|
|
|
$this->options['query']=$query; |
427
|
|
|
return $this; |
428
|
|
|
} |
429
|
|
|
/** |
430
|
|
|
* sink: (resource|string|StreamInterface) Where the data of the |
431
|
|
|
* response is written to. Defaults to a PHP temp stream. Providing a |
432
|
|
|
* string will write data to a file by the given name. |
433
|
|
|
* |
434
|
|
|
* @param (resource|string|StreamInterface) $sink |
435
|
|
|
* @return $this |
436
|
|
|
*/ |
437
|
|
|
public function setSink($sink) |
438
|
|
|
{ |
439
|
|
|
if(!is_resource($sink) && !is_string($sink) && !is_a($sink, StreamInterface::class)) |
440
|
|
|
{ |
441
|
|
|
return $this; |
442
|
|
|
} |
443
|
|
|
|
444
|
|
|
$this->options['sink']=$sink; |
445
|
|
|
return $this; |
446
|
|
|
} |
447
|
|
|
/** |
448
|
|
|
* synchronous: (bool) Set to true to inform HTTP handlers that you intend |
449
|
|
|
* on waiting on the response. This can be useful for optimizations. Note |
450
|
|
|
* that a promise is still returned if you are using one of the async |
451
|
|
|
* client methods. |
452
|
|
|
* |
453
|
|
|
* @return $this |
454
|
|
|
*/ |
455
|
|
|
public function setSynchronousTrue() |
456
|
|
|
{ |
457
|
|
|
$this->options['synchronous'] = true; |
458
|
|
|
return $this; |
459
|
|
|
} |
460
|
|
|
/** |
461
|
|
|
* synchronous: (bool) Set to true to inform HTTP handlers that you intend |
462
|
|
|
* on waiting on the response. This can be useful for optimizations. Note |
463
|
|
|
* that a promise is still returned if you are using one of the async |
464
|
|
|
* client methods. |
465
|
|
|
* |
466
|
|
|
* @return $this |
467
|
|
|
*/ |
468
|
|
|
public function setSynchronousFalse() |
469
|
|
|
{ |
470
|
|
|
$this->options['synchronous'] = false; |
471
|
|
|
return $this; |
472
|
|
|
} |
473
|
|
|
/** |
474
|
|
|
* ssl_key: (array|string) Specify the path to a file containing a private |
475
|
|
|
* SSL key in PEM format. If a password is required, then set to an array |
476
|
|
|
* containing the path to the SSL key in the first array element followed |
477
|
|
|
* by the password required for the certificate in the second element. |
478
|
|
|
* |
479
|
|
|
* @param (array|string) $ssl_key |
480
|
|
|
* @return $this |
481
|
|
|
*/ |
482
|
|
|
public function setSslKey($ssl_key) |
483
|
|
|
{ |
484
|
|
|
if(!is_array($ssl_key) && !is_string($ssl_key)) |
485
|
|
|
{ |
486
|
|
|
return $this; |
487
|
|
|
} |
488
|
|
|
|
489
|
|
|
$this->options['ssl_key']=$ssl_key; |
490
|
|
|
return $this; |
491
|
|
|
} |
492
|
|
|
/** |
493
|
|
|
* stream: Set to true to attempt to stream a response rather than |
494
|
|
|
* download it all up-front. |
495
|
|
|
* |
496
|
|
|
* @param $stream |
497
|
|
|
* @return $this |
498
|
|
|
*/ |
499
|
|
|
public function setStream($stream) |
500
|
|
|
{ |
501
|
|
|
$this->options['stream']=$stream; |
502
|
|
|
return $this; |
503
|
|
|
} |
504
|
|
|
/** |
505
|
|
|
* verify: (bool|string, default=true) Describes the SSL certificate |
506
|
|
|
* verification behavior of a request. Set to true to enable SSL |
507
|
|
|
* certificate verification using the system CA bundle when available |
508
|
|
|
* (the default). Set to false to disable certificate verification (this |
509
|
|
|
* is insecure!). Set to a string to provide the path to a CA bundle on |
510
|
|
|
* disk to enable verification using a custom certificate. |
511
|
|
|
* |
512
|
|
|
* @param (bool|string) $verify |
513
|
|
|
* @return $this |
514
|
|
|
*/ |
515
|
3 |
|
public function setVerify($verify) |
516
|
|
|
{ |
517
|
3 |
|
if(!is_bool($verify) && !is_string($verify)) |
518
|
3 |
|
{ |
519
|
|
|
$verify = false; |
520
|
|
|
} |
521
|
|
|
|
522
|
3 |
|
$this->options['verify']=$verify; |
523
|
3 |
|
return $this; |
524
|
|
|
} |
525
|
|
|
/** |
526
|
|
|
* timeout: (float, default=0) Float describing the timeout of the |
527
|
|
|
* request in seconds. Use 0 to wait indefinitely (the default behavior). |
528
|
|
|
* |
529
|
|
|
* @param float $secondRequestTimeout |
530
|
|
|
* @return $this |
531
|
|
|
*/ |
532
|
|
|
public function setTimeout($secondRequestTimeout=0.0) |
533
|
|
|
{ |
534
|
|
|
if(!is_float($secondRequestTimeout)){ |
535
|
|
|
$secondRequestTimeout = (float) 0.0; |
536
|
|
|
} |
537
|
|
|
|
538
|
|
|
$this->options['timeout']=(float) $secondRequestTimeout; |
539
|
|
|
return $this; |
540
|
|
|
} |
541
|
|
|
/** |
542
|
|
|
* version: (float, default=1.1) Specifies the HTTP protocol version to attempt to use. |
543
|
|
|
* |
544
|
|
|
* @param float $version |
545
|
|
|
* @return $this |
546
|
|
|
*/ |
547
|
|
|
public function setVersion($version) |
548
|
|
|
{ |
549
|
|
|
if(!is_float($version)){ |
550
|
|
|
$version = (float) 1.1; |
551
|
|
|
} |
552
|
|
|
|
553
|
|
|
$this->options['version']=$version; |
554
|
|
|
return $this; |
555
|
|
|
} |
556
|
|
|
|
557
|
|
|
/** |
558
|
|
|
* @param $property |
559
|
|
|
* @return mixed |
560
|
|
|
*/ |
561
|
15 |
|
public function __get($property) |
562
|
|
|
{ |
563
|
15 |
|
if (!property_exists($this, $property)) { |
564
|
|
|
return null; |
565
|
|
|
} |
566
|
|
|
|
567
|
15 |
|
return $this->$property; |
568
|
|
|
} |
569
|
|
|
|
570
|
|
|
/** |
571
|
|
|
* @param $property |
572
|
|
|
* @param $value |
573
|
|
|
* @return $this |
574
|
|
|
*/ |
575
|
|
|
public function __set($property, $value) |
576
|
|
|
{ |
577
|
|
|
if (!property_exists($this, $property)) { |
578
|
|
|
return; |
579
|
|
|
} |
580
|
|
|
|
581
|
|
|
$this->$property = $value; |
582
|
|
|
} |
583
|
|
|
|
584
|
|
|
/** |
585
|
|
|
* Set the default Request headers. |
586
|
|
|
*/ |
587
|
15 |
|
public function setDefaults() |
588
|
|
|
{ |
589
|
15 |
|
$this->setHttpErrorsFalse(); |
590
|
15 |
|
} |
591
|
|
|
} |
592
|
|
|
|