1: <?php
2:
3: class HttpResponse {
4:
5: private $curlHandle;
6: private $result;
7: private $curlOptions;
8:
9: public function __construct($curlOptions) {
10: $this->curlOptions = $curlOptions;
11: $this->curlHandle = curl_init();
12: curl_setopt_array($this->curlHandle, $curlOptions);
13: $this->result = curl_exec($this->curlHandle);
14: $outputFile = tempnam('/tmp', 'OUTPUT_');
15: file_put_contents($outputFile, $this->getBody());
16:
17: }
18:
19: public function getInfo() {
20: return curl_getinfo($this->curlHandle);
21: }
22:
23: public function getUrl() {
24: return $this->curlOptions[CURLOPT_URL];
25: }
26:
27: public function getStatusCode() {
28: return curl_getinfo($this->curlHandle, CURLINFO_HTTP_CODE);
29: }
30:
31: public function () {
32: $info = curl_getinfo($this->curlHandle);
33: return substr($this->result, 0, $info['header_size']);
34: }
35:
36: public function getBody() {
37: $info = curl_getinfo($this->curlHandle);
38: return substr($this->result, -$info['download_content_length']);
39: }
40:
41: public function close() {
42: curl_close($this->curlHandle);
43: }
44:
45: }
46:
47: ?>