2014-12-02 77 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