与php的皮划艇api

时间:2010-11-03 05:42:55

标签: php 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);  
?>

2 个答案:

答案 0 :(得分:1)

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

随意使用并修改它,我创建它用于简单的统计学研究,所以它非常基础。

答案 1 :(得分:0)

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

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