2012-07-15 50 views
1

我使用一个API,用于获取数据,但是当我使用JSON我用下面的代码从JSON获得回应,但肥皂零个记录

string apiKey = Connection.AppSettings("APIKey"); 
     string fullURL = "http://api.hotelspro.com/4.1_test/hotel/b2bHotelJSON.php?method=getAvailableHotel&apiKey=" + apiKey + "&destinationId=LD6J&checkIn=2012-07-20&checkOut=2012-07-24&currency=EUR&clientNationality=UK&onRequest=false&rooms[0][0][paxType]=Adult&rooms[0][1][paxType]=Adult&rooms[0][2][paxType]=Child&rooms[0][2][age]=6&rooms[1][0][paxType]=Adult&rooms[1][1][paxType]=Adult&rooms[1][2][paxType]=Child&rooms[1][2][age]=8&filters[0][filterType]=hotelStar&filters[0][filterValue]=3&filters[1][filterType]=resultLimit&filters[1][filterValue]=10"; 

     string text; 
     try 
     { 
      HttpWebRequest request = WebRequest.Create(fullURL) as HttpWebRequest; 
      request.Method = "Get"; 
      using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
      { 
       if (response.StatusCode != HttpStatusCode.OK) 
        throw new Exception(String.Format(
        "Server error (HTTP {0}: {1}).", 
        response.StatusCode, 
        response.StatusDescription)); 
       using (var sr = new StreamReader(response.GetResponseStream())) 
       { 
        text = sr.ReadToEnd(); 
       } 
       Response.Write(text); 



      } 
     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.Message); 
     } 

获得的数据,但是,当我使用下面的同样的事情这段代码用肥皂然后显示零记录。

这里是肥皂wsdl的代码。

b2bHotelSOAPService objsoap = new b2bHotelSOAPService(); 
     objsoap.Timeout = 20000; 
     objsoap.Url = "http://api.hotelspro.com/4.1_test/hotel/b2bHotelSOAP.php"; 

     string destinationId = "CIEC"; 
     DateTime checkIn = new DateTime(2012, 7, 20); 
     DateTime checkOut = new DateTime(2012, 7, 24); 
     string strCurrencyCode = "EUR"; 



     pax[][] rooms = new pax[3][]; 
     rooms[0] = new pax[3]; 
     rooms[0][0] = new pax(); 
     rooms[0][1] = new pax(); 
     rooms[0][2] = new pax(); 

     rooms[1] = new pax[3]; 
     rooms[1][0] = new pax(); 
     rooms[1][1] = new pax(); 
     rooms[1][2] = new pax(); 


     rooms[0][0].paxType = "Adult"; 
     rooms[0][1].paxType = "Adult"; 
     rooms[0][2].paxType = "Child"; 
     rooms[0][2].age = "6"; 

     rooms[1][0].paxType = "Adult"; 
     rooms[1][1].paxType = "Adult"; 
     rooms[1][2].paxType = "Child"; 
     rooms[1][2].age = "8"; 



     filter[] f = new filter[2]; 
     f[0] = new filter(); 
     f[0].filterType = "hotelStar"; 
     f[0].filterValue = "3"; 

     f[1] = new filter(); 
     f[1].filterType = "resultLimit"; 
     f[1].filterValue = "20"; 






     getAvailableHotelResponse getres = new getAvailableHotelResponse(); 

     getres = objsoap.getAvailableHotel(apiKey, destinationId, checkIn, checkOut, strCurrencyCode, "UK", false, rooms, f); 

这里获取显示零记录。

回答

1

感谢hotelsPro.com支持团队。最后,我从他们那里得到了答案,我在这个肥皂请求中制作了三个房间,但只发送了两个数据。

所以我需要改变这一行

pax[][] rooms = new pax[3][]; 

pax[][] rooms = new pax[2][]; 

,现在我正从SOAP响应也。再次感谢hotelsPro.com支持团队。