使用 WebRequest Class 发送 XML

本文关键字:XML 发送 Class WebRequest 使用 | 更新日期: 2023-09-27 18:32:56

嗨,我想使用webrequest类将下面的XML数据发送到Web服务器。我通过发布单个变量成功地做到了这一点。但是我无法将下面解析的XML包含在其中。请帮帮我。

static void Main(string[] args)
    {
        using (XmlReader reader = XmlReader.Create("filepath"))
        {
            while (reader.Read())
            {
                switch (reader.NodeType)
                { 
                    case XmlNodeType.Element:
                        Console.WriteLine("Start Elemet {0}", reader.Name);
                        break;
                    case XmlNodeType.Text:
                        Console.WriteLine("Text Node: {0}", reader.Value);
                        break;
                    case XmlNodeType.EndElement:
                        Console.WriteLine("EndElement {0}", reader.Name);
                        break;
                    default:
                        Console.WriteLine("Other node {0} with value {1}",
                                        reader.NodeType, reader.Value);
                        break;
                 }
            }
        }
    }    

下面是我从 msdn 网站获得的代码,我想通过它发送上面的 XML 数据。

   public class WebRequestPostExample
{
    public static void Main ()
    {
        // Create a request using a URL that can receive a post. 
        WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");
        // Set the Method property of the request to POST.
        request.Method = "POST";
        // Create POST data and convert it to a byte array.
        string postData = "This is a test that posts this string to a Web server.";
        byte[] byteArray = Encoding.UTF8.GetBytes (postData);
        // Set the ContentType property of the WebRequest.
        request.ContentType = "application/x-www-form-urlencoded";
        // Set the ContentLength property of the WebRequest.
        request.ContentLength = byteArray.Length;
        // Get the request stream.
        Stream dataStream = request.GetRequestStream ();
        // Write the data to the request stream.
        dataStream.Write (byteArray, 0, byteArray.Length);
        // Close the Stream object.
        dataStream.Close ();
        // Get the response.
        WebResponse response = request.GetResponse ();
        // Display the status.
        Console.WriteLine (((HttpWebResponse)response).StatusDescription);
        // Get the stream containing content returned by the server.
        dataStream = response.GetResponseStream ();
        // Open the stream using a StreamReader for easy access.
        StreamReader reader = new StreamReader (dataStream);
        // Read the content.
        string responseFromServer = reader.ReadToEnd ();
        // Display the content.
        Console.WriteLine (responseFromServer);
        // Clean up the streams.
        reader.Close ();
        dataStream.Close ();
        response.Close ();
    }
}

我想接收端是PHP。

使用 WebRequest Class 发送 XML

试试这个

XElement xml=XElement.Load(xmlFile);
HttpWebRequest request = WebRequest.Create(new Uri(destinationUrl));
byte[] data = Encoding.Default.GetBytes(xml.Value);
request.Method = "POST";
request.ContentType="application/xml";
request.ContentLength = data.Length;
Stream sout = request.GetRequestStream();
sout.Write(data, 0, data.Length);
sout.Flush();
sout.Close();
HttpWebResponse response = request.GetResponse();