25
25
class CurlHttpClient implements HttpClient, HttpAsyncClient
26
26
{
27
27
/**
28
- * Client settings
28
+ * cURL options
29
29
*
30
30
* @var array
31
31
*/
32
- private $ settings ;
32
+ private $ options ;
33
33
34
34
/**
35
35
* cURL response parser
@@ -64,7 +64,7 @@ class CurlHttpClient implements HttpClient, HttpAsyncClient
64
64
*
65
65
* @param MessageFactory $messageFactory HTTP Message factory
66
66
* @param StreamFactory $streamFactory HTTP Stream factory
67
- * @param array $options Client options
67
+ * @param array $options cURL options (see http://php.net/curl_setopt)
68
68
*
69
69
* @since 1.0
70
70
*/
@@ -74,15 +74,7 @@ public function __construct(
74
74
array $ options = []
75
75
) {
76
76
$ this ->responseParser = new ResponseParser ($ messageFactory , $ streamFactory );
77
- $ this ->settings = array_merge (
78
- [
79
- 'curl_options ' => [],
80
- 'connection_timeout ' => 3 ,
81
- 'ssl_verify_peer ' => true ,
82
- 'timeout ' => 10
83
- ],
84
- $ options
85
- );
77
+ $ this ->options = $ options ;
86
78
}
87
79
88
80
/**
@@ -169,19 +161,15 @@ public function sendAsyncRequest(RequestInterface $request)
169
161
*/
170
162
private function createCurlOptions (RequestInterface $ request )
171
163
{
172
- $ options = $ this ->settings [ ' curl_options ' ] ;
164
+ $ options = $ this ->options ;
173
165
174
166
$ options [CURLOPT_HEADER ] = true ;
175
167
$ options [CURLOPT_RETURNTRANSFER ] = true ;
168
+ $ options [CURLOPT_FOLLOWLOCATION ] = false ;
176
169
177
170
$ options [CURLOPT_HTTP_VERSION ] = $ this ->getProtocolVersion ($ request ->getProtocolVersion ());
178
171
$ options [CURLOPT_URL ] = (string ) $ request ->getUri ();
179
172
180
- $ options [CURLOPT_CONNECTTIMEOUT ] = $ this ->settings ['connection_timeout ' ];
181
- $ options [CURLOPT_FOLLOWLOCATION ] = false ;
182
- $ options [CURLOPT_SSL_VERIFYPEER ] = $ this ->settings ['ssl_verify_peer ' ];
183
- $ options [CURLOPT_TIMEOUT ] = $ this ->settings ['timeout ' ];
184
-
185
173
if (in_array ($ request ->getMethod (), ['OPTIONS ' , 'POST ' , 'PUT ' ], true )) {
186
174
// cURL allows request body only for these methods.
187
175
$ body = (string ) $ request ->getBody ();
0 commit comments