2010-11-03 26 views
0

我想做一个网站至极具有搜索功能。在这个我不得不做搜索航班,酒店等,有人建议我使用这个皮艇api。我为此搜寻了每一件事。但我没有任何想法。任何人都可以建议我如何在我的网站中使用这个api。与皮艇的皮船api

谢谢。


我这样试过。在这里我被困住了。

<? ob_start(); session_start(); 
$hostname="http://www.kayak.com"; 
    $token="mCHpMz2L_a_OrEkz3FSiDg";//"mCHpMz2L_a_OrEkz3FSiDg"; 
    $sessionid=""; $searchid=""; 
$searchtype="";  $lastcount=""; 
class ksearchphpExample { 

     public function ksearchJavaExample($args){  
/*print_r($args); echo 
count($args);exit;*/  if(count($args) 
< 4 || count($args) > 5) { 
      echo("USAGE:\n". 
       "ksearchJavaExample f ORIGIN_AIPORT DESTINATION_AIRPORT 
DEPART_DATE [RETURN_DATE]\n". 
       "ksearchjavaExample h \"city, RC, CC\" CHECKIN_DATE CHECKOUT_DATE\n"); 
      exit();   } 
       $searchtype='h'; //$args[0].charAt(0); 
      $sessionid= getsession();  echo("Session ID:\t".$sessionid); 
       if($searchtype == 'f'){   $searchid= start_flight_search("n", 
$args[1],$args[2],$args[3],$args[4]); 
     } 
       if($searchtype == 'h'){   $searchid= 
start_hotel_search($args[1],$args[2],$args[3]); 
     }  echo("Search ID:\t".$searchid); 
     while (pollResults()) { 
      echo("waiting for more...");  } } 

private function getsession(){ 

     echo("Token:\t\t".$token );  $xml 
= simplexml_load_file($hostname."/k/ident/apisession?token=".$token 
); 

echo $xml->getName() . "<br />"; 

foreach($xml->children() as $child) 
{ echo $child->getName() . ": " . 
$child . "<br />"; } 
     $response=get($hostname+"/k/ident/apisession?token=".$token 
); 
      $root=xmlRoot($response);  $sessionid=$root.getElementsByTagName("sid"); 
     if($sessionid.getLength() == 0){ 
      echo("BAD TOKEN: ".$response); 
      exit(1);  }  return 
$sessionid.item(0).getFirstChild().getNodeValue(); 
    } 

//private function fetch($urlstring){ 
//  $content = ""; // //   try { 
//   $url = new URL($urlstring); 
//   InputStream is = 
url.openStream(); //   
BufferedReader d = new 
BufferedReader(new 
InputStreamReader(is)); //   
String s; //    //   while 
(null != (s = d.readLine())) { //  
content = content + s + "\n"; //   
} //   is.close(); //   
//  } catch (Exception e) { 
System.out.println(e.getMessage()); } 
//  return content; //  } //  
// public static void main(String[] 
args) { //  ksearchJavaExample ks = 
new ksearchJavaExample(args);  // } 

    } $kps=new ksearchphpExample(); 
$arg= array 
('h','hyderabad,india','03/11/2010','05/11/2010'); 
echo $kps->ksearchJavaExample($arg); 
?> 

回答

0

http://www.kayak.com/labs/api/search/

好像你需要获得一个开发人员密钥。一旦你有了这些,你可以在服务器上发布数据,并解析它们返回的XML(请注意,他们的搜索需要30-60秒才能完成,因此你必须请求搜索,获取搜索ID,然后再次查看对于使用搜索ID的结果)。查看API spec

+0

感谢您的回复。这是我的代码 – 2010-11-03 10:21:42

+0

我认为Kayak关闭他们的API ... http://www.kayak.com/labs/api/ – ImadT 2015-04-07 22:14:31

1

我写了一个类来处理这个问题,它可以在这里http://kidtwist.uphero.com

观看随意使用它,修改它,我创造了它一个简单的统计研究,所以这是非常基本的。