Expedia Api和ASP.Net(403 Developer Inactive)

时间:2012-10-11 13:35:09

标签: c# asp.net web-services api

我是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/,如上所述文件

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

    这将返回错误403开发人员无效

    的XML

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

    无论是在教程,示例还是一些解释中,我都需要您提供帮助

2 个答案:

答案 0 :(得分: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>");
   }

我需要启动每种类型,因为如果我没有,对象的值将保持为null,我将无法为其属性添加任何值。

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

答案 1 :(得分:0)

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

上有一个教程