我正在从事Web服务(SOAP(,我无法参考Web应用程序我正在尝试序列化响应肥皂按摩,但我会收到此错误:
http://schemas.xmlsoap.org/soap/envelope/'>不期望
我正在使用:
XmlSerializer serializer = new XmlSerializer(typeof(SearchFlightResponse));
SearchFlightResponse result = (SearchFlightResponse)serializer.Deserialize(XmlReader.Create("file:///D:/SR_response.xml"));
这是肥皂响应:xml
您将无法将SOAP信封直接化为自定义类型。您将可以解析XML并提取数据,然后手动创建类型的实例,或构建一个非常复杂的自定义XML序列化器。
,如果您将此服务添加为服务参考,则可以节省自己的时间。您将获得一个代理客户端,您可以像其他任何对象一样拨打电话,但它会为您提供Web服务。
在您的项目中,右键单击References
,然后选择Add Service Reference...
。int Address
框,放置该服务的WSDL位置,这是:
https://ws.epower.amadeus.com/demo.WS/EpowerService.asmx?wsdl
您可能希望将命名空间从ServicEreference1更改为EpowerSVC或其他 - 只是不要使用虚线名称(即:epower.service(。
。现在您可以创建客户端并调用方法。我不确定您通过示例代码调用哪种方法,但我猜这是SearchFlight
:
EpowerSvc.EpowerServiceSoapClient client = new EpowerSvc.EpowerServiceSoapClient();
SearchFlightCalendarResponseOTA_AirLowFareSearchRS result = client.SearchFlight( someparam, someparam2, someparam3);
//use result
result.Items...