2012-03-16 153 views
0

嗨我想使用Expedias API酒店系统,我似乎无法得到它的工作。这是我的代码,我得到这个错误:PHP XML XML请求返回错误(403)

<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; 
?> 

回答

0

最可能的原因,你会得到一个403开发者无效错误是因为你的apiKey值是无效的,不正确的,或者它已被禁用。如果您已经激活了您的帐户,并且这是您提供的API密钥 - 联系支持。