php xml HTTP-запрос возврата ошибки (403) - PullRequest
0 голосов
/ 16 марта 2012

Привет. Я пытаюсь использовать систему отелей Expedias api и не могу заставить ее работать.Вот мой код, я получаю эту ошибку:

<h1>403 Developer Inactive</h1>

Я понятия не имею, что я делаю неправильно.Любая помощь будет принята с благодарностью.Вот мой код:

<?php 
$ipad = $_SERVER['REMOTE_ADDR'];
$usera = $_SERVER['HTTP_USER_AGENT'];

$url = "http://api.ean.com/ean-services/rs/hotel/v3/info?'minorRev=5
&cid=55505
&apiKey=6spskr4y2sw4sh3vxkfg8cbg
&customerIpAddress = ".$ipad."
&customerUserAgent =".$usera."
&locale=en_US
&currencyCode=USD
&xml=<HotelInformationRequest>
<hotelId>122212</hotelId>
<options>HOTEL_SUMMARY</options>
</HotelInformationRequest>";

class cURL {

var $headers; 
var $user_agent; 
var $compression; 
var $cookie_file; 
var $proxy; 



function cURL($cookies=TRUE,$cookie='cookies.txt',$compression='gzip',$proxy=''){ 

$this->headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg'; 
$this->headers[] = 'Connection: Keep-Alive'; 
$this->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8'; 
$this->user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; 
$this->compression=$compression; 
$this->proxy=$proxy; 
$this->cookies=$cookies; 

if ($this->cookies == TRUE) $this->cookie($cookie); 
} 


function cookie($cookie_file){ 
if (file_exists($cookie_file)){ 
$this->cookie_file=$cookie_file; 
} else { 
fopen($cookie_file,'w') or $this->error('The cookie file could not be opened. Make sure this directory has the correct permissions'); 
$this->cookie_file=$cookie_file; 
fclose($this->cookie_file); 
} 
} 


function get($url) { 
$process = curl_init($url); 
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); 
curl_setopt($process, CURLOPT_HEADER, 1); 
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); 
if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); 
if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); 
curl_setopt($process,CURLOPT_ENCODING , $this->compression); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
if ($this->proxy) curl_setopt($cUrl, CURLOPT_PROXY, 'proxy_ip:proxy_port'); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 
$return = curl_exec($process); 
curl_close($process); 
return $return; 
} 


function post($url,$data) { 
$process = curl_init($url); 
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); 
curl_setopt($process, CURLOPT_HEADER, 0); 
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); 
if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); 
if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); 
curl_setopt($process, CURLOPT_ENCODING , $this->compression); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
if ($this->proxy) curl_setopt($process, CURLOPT_PROXY, $this->proxy); 
curl_setopt($process, CURLOPT_POSTFIELDS, $data); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($process, CURLOPT_POST, 1); 
$return = curl_exec($process); 
curl_close($process); 
return $return; 
}

function error($error) { 
echo "<center><div style='width:500px;border: 3px solid #FFEEFF; padding: 3px; background-color: #FFDDFF;font-family: verdana; font-size: 10px'><b>cURL Error</b><br>$error</div></center>"; 
die; 
} 


function extractCustomHeader($start,$end,$header) { 
$pattern = '/'. $start .'(.*?)'. $end .'/'; 
if (preg_match($pattern, $header, $result)) { 
return $result[1]; 
} else { 
return false; 
} 
} 
}

$cc = new cURL();

$output = $cc->post($url,$postdata);
echo $output;
?>

1 Ответ

0 голосов
/ 16 марта 2012

Наиболее вероятная причина, по которой вы получите ошибку 403 Developer Inactive, заключается в том, что ваше значение apiKey недопустимо, неверно или оно было отключено.Если вы уже активировали свою учетную запись и вам предоставлен этот ключ API - обратитесь в службу поддержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...