首页 > 解决方案 > HTTPS POST Web 服务请求格式 - 在子节点内插入多个值

问题描述

我被要求开发一个项目,该项目涉及咨询其他公司的网络服务,他们为此提供的格式如下

<message>
        <serviceRequest serviceCode="service name">
              .../...
        </serviceRequest>
</message>&callerCode=21346&password=12012012

现在,我已经阅读了下面的链接,它给出了一个很好的答案,关于如何发出请求How to make HTTP POST web request,但我似乎无法弄清楚如何制作我被要求的格式。如何在子节点内插入多个“值”作为内联?

<serviceRequest serviceCode="service name">

标签: c#.netxmllinq

解决方案


为了发出请求,我喜欢使用 Linq to XML: http: //www.dotnetcurry.com/linq/564/linq-to-xml-tutorials-examples

大约第 9 步有你想要的。

如果您对 LINQ 有很好的理解(或者可以搜索 SO) - 您可以将其与 XDocument 一起使用来创建您需要发送的对象。

因此,对于您想要的东西,它将是:

XDocument xDoc = new XDocument(
        new XElement("message",
            new XElement("serviceRequest ", new XAttribute("serviceCode", "service name"), 
                new XElement("request", "dothing1"),
                new XElement("request", "dothing2")
                ),
            new XElement("serviceRequest ", new XAttribute("serviceCode", "service name")));

应该创建如下内容:

<message>
    <serviceRequest serviceCode="service name">
          <request>"dothing1"</request>
          <request>"dothing2"</request>
    </serviceRequest>
    <serviceRequest serviceCode="service name">
    </serviceRequest>
</message>

推荐阅读