Http Post请求c#xml
如何编写这种类型的请求Http Post请求c#xml,c#,xml,xmlhttprequest,C#,Xml,Xmlhttprequest,如何编写这种类型的请求 <?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
<?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>
在这里签名
我不知道如何编写这种类型结构的请求参数。首先将数据作为对象。
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序列化后发布
看看这个例子你只想把这个xml作为正文发布吗?是的,所有请求,带有头和正文以及allserializer.Serialize(writer,obj,ns);“ns”是什么?抱歉,我更正了它,这是一个更改生成的命名空间的选项