2014-12-02 78 views
0

您好我想通过使用webrequest类将XML数据发送到Web服务器。我通过发布单个变量成功完成。但是我不能将下面的解析XML包含进去。请帮助我。使用WebRequest发送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中。

+1

定义 “不能”。你期望发生什么,发生了什么? – CodeCaster 2014-12-02 10:32:50

+0

我只想发送使用上述webrequest类的XML数据。 – 2014-12-02 10:38:44

+0

我的意思是为什么不工作。 – CodeCaster 2014-12-02 10:42:20

回答

0

试试这个

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(); 
+0

嗨,我dint为我工作。它是从你的工作结束..? – 2014-12-02 11:39:55