2017-05-05 119 views
0

如何编写这种类型的请求?Http Post请求c#xml

<?xml version="1.0" encoding="UTF-8"?> 
<epolice> 
    <request subject="push" action="register_number" id="4"> 
     <push cert_num="AA123456" pre="12" code="AA" post="345"/> 
    </request> 
    <signature>signature here</signature> 
</epolice> 

我不知道如何编写这种类型的结构的请求参数。

+0

你只是想将此xml作为正文发布? – sachin

+0

是的所有请求,与标题和正文和所有 –

回答

0

拳使您的数据

using System; 
using System.Xml.Serialization; 
using System.Collections.Generic; 
namespace XmlSerialize 
{ 
    [XmlRoot(ElementName="push")] 
    public class Push { 
     [XmlAttribute(AttributeName="cert_num")] 
     public string Cert_num { get; set; } 
     [XmlAttribute(AttributeName="pre")] 
     public string Pre { get; set; } 
     [XmlAttribute(AttributeName="code")] 
     public string Code { get; set; } 
     [XmlAttribute(AttributeName="post")] 
     public string Post { get; set; } 
    } 

    [XmlRoot(ElementName="request")] 
    public class Request { 
     [XmlElement(ElementName="push")] 
     public Push Push { get; set; } 
     [XmlAttribute(AttributeName="subject")] 
     public string Subject { get; set; } 
     [XmlAttribute(AttributeName="action")] 
     public string Action { get; set; } 
     [XmlAttribute(AttributeName="id")] 
     public string Id { get; set; } 
    } 

    [XmlRoot(ElementName="epolice")] 
    public class Epolice { 
     [XmlElement(ElementName="request")] 
     public Request Request { get; set; } 
     [XmlElement(ElementName="signature")] 
     public string Signature { get; set; } 
    } 

} 

的对象序列化

private static string XMLSerializer(object obj) 
    { 
     string xml = ""; 
     XmlWriterSettings xmlWriterSettings = new XmlWriterSettings 
     { 
      Encoding = Encoding.UTF8, 
      Indent = true 
     }; 
     using (var sww = new Utf8StringWriter()) 
     { 
      using (XmlWriter writer = XmlWriter.Create(sww, xmlWriterSettings)) 
      { 
        XmlSerializer serializer = new XmlSerializer(obj.GetType()); 
        serializer.Serialize(writer, obj); 
       xml = sww.ToString(); 
      } 
     } 
     return xml; 
    } 
    private sealed class Utf8StringWriter : StringWriter 
    { 
     public override Encoding Encoding { get { return Encoding.UTF8; } } 
    } 

然后你可以发表你的XML序列 看看这个例子post

+0

serializer.Serialize(writer,obj,ns); “ns”是什么? –

+0

对不起,我纠正它,这是一个选项来更改名称空间生成 – Ben

+0

非常感谢你,我已经做到了! –