我对 Web 服务和 WSDL 很陌生。
我想做的是构建一个 Web 服务来读取客户的 SOAP 消息并对其进行处理。
发给我的soap消息如下(注意我已经把SOAP消息剪掉了)
<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
<soap2:Header>
<wsa:Action>http://htng.org/PWSWG/2010/12/ReservationSynch_SubmitRequest</wsa:Action>
<wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
</wsa:ReplyTo>
</soap2:Header>
<Body>
<OTA_HotelResNotifRQ>
<POS>
//More tags
</POS>
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID Type="14" ID="59071IC000041" />
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</Body>
</Envelope>
这是我的 Web 服务 asmx(我再次对其进行了修剪)
[WebMethod]
[SoapDocumentMethodAttribute("http://htng.org/PWSWG/2010/12/ReservationSynch_SubmitRequest", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
public OTA_HotelResNotifRS ReservationSynch_SubmitRequest(OTA_HotelResNotifRQ OTA_HotelResNotifRQ)
{
}
问题:当消息进入时,方法 ReservationSynch_SubmitRequest 被触发,但 OTA_HotelResNotifRQ 为空。客户给了我 WSDL,就我而言,课程是正确的。虽然我注意到<Body>
标签而不是<soap2:Body>
. 这有什么不同吗?
我无法更改客户的消息,我只能更改我的网络服务以阅读他们发送给我的内容。我在我的 asmx 中遗漏了什么吗?
如果你有兴趣,这里是他们的 WSDL https://interface.synxis.com/interface/ota2010av2/OTA2010A.svc.wsdl