1

我是 Webservices 和 ASP.Net 的新手。

我正在尝试检索某个城市的酒店..我使用添加服务参考..

  1. 它不接受 XML 模式 ( http://api.ean.com/ean-services/rs/hotel/v3?_wadl&type=xml&apiKey=[xxxYourAPIkeyxxx]) 它接受了 Soap WSDL ( http://api.ean.com/ean-services/rs/hotel/v3?_wadl&type=xml&apiKey=[xxxYourAPIkeyxxx])

  2. 之后我可以访问这些类,但我不知道如何返回列表或激发他尝试创建表单的方法,并将操作设置为http://api.ean.com/ean-services/ ws/hotel/v3/如文档中所述

<form runat="server" action="http://api.ean.com/ean-services/ws/hotel/v3/">
<asp:Button ID="Button1" runat="server" onclick="Unnamed1_Click"/>
</form>

这将返回一个带有错误 403 developer Inactive 的 XML

我已将我的 IP 地址添加到 EAN 网站的应用程序中

请我需要任何帮助,无论是在教程、示例还是一些解释中

4

2 回答 2

1

添加服务引用后,我在 defualt.aspx 中创建了一个表单和一个按钮

<form runat="server">
<asp:Button ID="button3" runat="server" OnClick="button3_Click" />
</form>

该按钮调用 defualt.aspx.cs 中的方法 button3_Click (ExpediaAPIShared 是我添加服务时给它起的名称)

  ExpediaAPIShared.HotelServicesClient client = new HotelServicesClient();
  ExpediaAPIShared.HotelListRequest hotelListRequest = new HotelListRequest();
  ExpediaAPIShared.HotelList hotelList = new HotelList();
  ExpediaAPIShared.HotelListResponse hotelListResponse = new HotelListResponse();
  client.Open();
  hotelListRequest.apiKey = "6ppdh333hagfauy5724hdggn";//use ur own key
  hotelListRequest.cid = 55505; //this is the CID for testing
  hotelListRequest.city = "Riyadh";
  hotelListRequest.datelessSupplierSort = true;
  hotelListResponse = client.getList(hotelListRequest);
  hotelList = hotelListResponse.HotelList; 
    for (int i = 0; i < hotelList.size; i++)
    {
        Response.Write(hotelList.HotelSummary[i].name);
        Response.Write("</br>");
   }

我需要启动每种类型,因为如果我不这样做,对象的值将保持为空,我将无法为其属性添加任何值。

此代码将仅返回利雅得酒店的名称。

于 2012-10-13T00:07:05.300 回答
0

如果不查看 API 文档,很难回答您的问题。从您的问题看来,Expedia API 支持两种访问方式。一种是通过 SOAP 调用(您在其中对 WSDL 文件执行添加服务引用),一种是通过表单 POST。您应该使用其中一种。添加服务参考可能是最简单的。看看 Add Svc Ref 生成的文件,那里应该有一个名称以“...Client”结尾的类。只需创建该类的一个实例,它就会为您的服务提供方法。http://www.telerik.com/help/wpf/sumption-data-wcf-service.html上有一个教程

于 2012-10-11T21:38:53.837 回答