通过HttpWebRequest手动与REST Web服务进行通信,无需自定义对象

时间:2014-04-10 18:23:17

标签: c# xml wcf httpwebrequest linq-to-xml

我有一个需要与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());

这是朝着正确的方向前进(并且希望大部分完成)?或者这完全是疯狂的,并且要求采用完全不同的方法?

0 个答案:

没有答案