Requests_Transport_cURL::request() WordPress Method
The request() method of the Requests_Transport_cURL class makes an HTTP request using cURL. This is a low-level method that does not do any error checking or validation. It is intended for use by other methods in the class, and is not generally called directly by user code.
Requests_Transport_cURL::request( string $url, array $headers = array(), string|array $data = array(), array $options = array() ) #
Perform a request
Parameters
- $url
(string)(Required)URL to request
- $headers
(array)(Optional)Associative array of request headers
Default value: array()
- $data
(string|array)(Optional)Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
Default value: array()
- $options
(array)(Optional)Request options, see Requests::response() for documentation
Default value: array()
Return
(string) Raw HTTP result
Source
File: wp-includes/Requests/Transport/cURL.php
public function request($url, $headers = array(), $data = array(), $options = array()) { $this->hooks = $options['hooks']; $this->setup_handle($url, $headers, $data, $options); $options['hooks']->dispatch('curl.before_send', array(&$this->handle)); if ($options['filename'] !== false) { $this->stream_handle = fopen($options['filename'], 'wb'); } $this->response_data = ''; $this->response_bytes = 0; $this->response_byte_limit = false; if ($options['max_bytes'] !== false) { $this->response_byte_limit = $options['max_bytes']; } if (isset($options['verify'])) { if ($options['verify'] === false) { curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($this->handle, CURLOPT_SSL_VERIFYPEER, 0); } elseif (is_string($options['verify'])) { curl_setopt($this->handle, CURLOPT_CAINFO, $options['verify']); } } if (isset($options['verifyname']) && $options['verifyname'] === false) { curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); } curl_exec($this->handle); $response = $this->response_data; $options['hooks']->dispatch('curl.after_send', array()); if (curl_errno($this->handle) === 23 || curl_errno($this->handle) === 61) { // Reset encoding and try again curl_setopt($this->handle, CURLOPT_ENCODING, 'none'); $this->response_data = ''; $this->response_bytes = 0; curl_exec($this->handle); $response = $this->response_data; } $this->process_response($response, $options); // Need to remove the $this reference from the curl handle. // Otherwise Requests_Transport_cURL wont be garbage collected and the curl_close() will never be called. curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, null); curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, null); return $this->headers; }
Expand full source codeCollapse full source codeView on TracView on GitHub