我是Webservices和ASP.Net的新手。
我正在尝试检索某个城市的酒店..我使用了添加服务参考..
它不接受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]
)
之后我可以访问这些类,但我不知道如何返回列表或激发他尝试创建表单的方法,我已将操作设置为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开发人员无效
的XML我已将我的IP地址添加到EAN网站的应用程序
无论是在教程,示例还是一些解释中,我都需要您提供帮助
答案 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
上有一个教程