doukuang8166 2014-12-02 10:27
浏览 66

使用WebRequest Class发送XML

Hi I want to send below XML data to web server by using webrequest class. I done it successfully by posting single variable. But i am not able to include below parsed XML into it. Please help me out.

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;
                 }
            }
        }
    }    

Below is the code which i got from msdn website and through this i want to send above XML data.

   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 ();
    }
}

and i want to receiver end is in PHP.

  • 写回答

1条回答 默认 最新

  • douzhe9927 2014-12-02 11:06
    关注

    try this

    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();
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料