All pastes #919911 Raw Edit

Someone

public php v1 · immutable
#919911 ·published 2008-02-27 02:13 UTC
rendered paste body
<?class HttpRequest{	public static $REQUEST = array(		'Accept' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',		'Connection' => 'keep-alive',		'Keep-Alive' => 300,		'Accept-Charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',		'Accept-Language' => 'en-us,en;q=0.5',		'Pragma' => ''	);		public static $POST = array(		'Content-type' => 'application/x-www-form-urlencoded',		'Connection' => 'close'	);		public static $USER_AGENT = 'Mozilla/4.0 (compatible; HttpRequest/PHPFresh/cUrl/PHP)';			protected $headers = array();		public function setHeaders($fields) {		foreach ($fields as $key => $value)			$this->headers[$key] = $value;	}		public function setHeader($key, $value) {		$this->headers[$key] = $value;	}		public function post($url, $data, $username = null, $password = null) {		return $this->request('POST', $url, $data, $username, $password);	}		public function get($url, $data, $username = null, $password = null) {		return $this->request('GET', $url, null, $username, $password);	}		public function request($type, $url, $data = null, $username = null, $password = null) {		$isPost = $type == 'POST';		$data = is_array($data) ? http_build_query($data) : $data;				// Default Headers		$headers = self::$HEADERS;				// Post Headers		if ($isPost) {			foreach (self::$POST as $key => $value)				$headers[$key] = $value;							$headers['Content-length'] = strlen($data);		}				// Custom Headers		foreach ($this->headers as $key => $value)			$headers[$key] = $value;				// Change headers to valid strings		$page = substr($url, strpos($url, '//') + 2);		$arrHeaders = array(			"$type $page HTTP/1.0"		);				// Convert to array-based headers		foreach ($headers as $key => $value)			$arrHeaders[] = "$key: $value";				// Set curl options		$fields = array(			CURLOPT_URL => $url,			CURLOPT_RETURNTRANSFER => 1,			CURLOPT_TIMEOUT => 60,			CURLOPT_HTTPHEADER => $arrHeaders,			CURLOPT_USERAGENT => self::$USER_AGENT,			CURLOPT_ENCODING => 'gzip,deflate'		);						// Options for post only		if ($isPost) {			$fields[CURLOPT_POST] = 1;			$fields[CURLOPT_POSTFIELDS] = $data;		}				// Execute		return $this->execute($fields);	}		protected function execute($fields) {		$ch = curl_init();				foreach ($fields as $key => $value)			curl_setopt($ch, $key, $value);				$data = curl_execute($ch);		curl_close($ch);				$this->headers = array();				return $data;	}}?>