我有一个需要与Web服务通信的服务(我们称之为A)(我们称之为B)。服务A不是Web服务,由于某些设计决策,将不包含Web服务。我需要在服务B中与之交互的方法不接受任何自定义对象 - List<string>
是其中一个调用中涉及的唯一对象。服务B设置为接受XML。
以下是服务B界面中的一种方法示例:
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle=WebMessageBodyStyle.Wrapped,
UriTemplate = "AddBasicTocsEvent/id={id}&latitude={lat}&longtitude={long}&someRemarkAboutTheData={sratd}")]
StatusMessage AddBasicThing(short id, decimal latitude, decimal longtitude, string someRemarkAboutTheData);
我如何构建要发送的XML,以便Service B可以提取数据并将正确的值抛给指定的参数?
这就是我认为服务A应该做的事情(使用处理发送HttpWebRequest的实用程序类 - 这已经过测试并且有效):
XDocument xDoc = new XDocument();
XElement root = new XElement("content");
root.Add(new XElement("id", 42));
root.Add(new XElement("latitude", 42.42m));
root.Add(new XElement("longitude", 42.42m));
root.Add(new XElement("someRemarkAboutTheData", "They're Grrrreat!"));
xDoc.Add(root);
HttpStringResponse = UtilsClass.PerformHttpPost(THE_URL_FOR_POSTING, xDoc.ToString());
这是朝着正确的方向前进(并且希望大部分完成)?或者这完全是疯狂的,并且要求采用完全不同的方法?