Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http Post请求c#xml_C#_Xml_Xmlhttprequest - Fatal编程技术网

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”是什么?抱歉,我更正了它,这是一个更改生成的命名空间的选项