public function HttpClient::execute in Http Client 7.2
Same name and namespace in other branches
- 6.2 includes/HttpClient.inc \HttpClient::execute()
Executes the given request.
4 calls to HttpClient::execute()
- HttpClient::delete in includes/
HttpClient.inc - Executes a DELETE request.
- HttpClient::get in includes/
HttpClient.inc - Executes a GET request.
- HttpClient::post in includes/
HttpClient.inc - Executes a POST request.
- HttpClient::put in includes/
HttpClient.inc - Executes a PUT request.
File
- includes/
HttpClient.inc, line 133
Class
- HttpClient
- A http client.
Code
public function execute(HttpClientRequest $request) {
// Allow the request to be altered
if ($this->request_alter) {
call_user_func($this->request_alter, $request);
}
if (isset($request->data)) {
if ($this->formatter) {
$request
->setHeader('Content-type', $this->formatter
->contentType());
$request->data = $this->formatter
->serialize($request->data);
}
else {
$request->data = (string) $request->data;
}
if (is_string($request->data)) {
$request
->setHeader('Content-length', strlen($request->data));
}
}
if ($this->formatter) {
$request
->setHeader('Accept', $this->formatter
->accepts());
}
// Allow the authentication implementation to do it's magic
if ($this->authentication) {
$this->authentication
->authenticate($request);
}
$response = $this->delegate
->execute($this, $request);
$this->lastRequest = $request;
$this->lastResponse = $response;
$result = NULL;
if ($response->responseCode >= 200 && $response->responseCode <= 299) {
if ($this->formatter) {
try {
$result = $this->formatter
->unserialize($response->body);
} catch (Exception $e) {
throw new HttpClientException('Failed to unserialize response', 0, $response, $e);
}
}
else {
$result = $response->body;
}
}
elseif (!empty($response->drupalErrors)) {
throw new HttpClientException(check_plain(implode("\n", $response->drupalErrors)), $response->responseCode, $response);
}
else {
throw new HttpClientException(check_plain($response->responseMessage), $response->responseCode, $response);
}
return $result;
}