2013-02-21 2 views
0

Я создал простой XML-запрос на test.aspx.Ответ на WebRequest

System.Net.WebRequest req = System.Net.WebRequest.Create("http://server.loc/rq.aspx"); 

      req.ContentType = "text/xml"; 
      req.Method = "POST"; 

      string strData = "<root><test>test1 </test></root>"; 
      byte[] bytes = System.Text.Encoding.ASCII.GetBytes(strData); 
      req.ContentLength = bytes.Length; 
      Stream os = req.GetRequestStream(); 
      os.Write(bytes, 0, bytes.Length); 


      System.Net.WebResponse resp = req.GetResponse(); 
      if (resp == null) return; 
      System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); 

      string responsecontent = sr.ReadToEnd().Trim(); 

Теперь на rq.aspx Я хочу предвосхищать WebRequest и создать какой-то ответ, основанный на strData. Я действительно не знаю, как получить доступ к strData из веб-запроса.

ответ

1

Это, вероятно, то, что вы ищете

private void Page_Load(object sender, EventArgs e) 
{ 
    // Read XML posted via HTTP 
    using (var reader = new StreamReader(Request.InputStream)) 
    { 
     string xmlData = reader.ReadToEnd(); 
     // do something with the XML 
    } 
} 

От this answer

+0

Да! Это единственный способ обработки запросов, содержащих XML-данные? – mko

+0

Вероятно, но вы можете проанализировать XMLDocument и использовать его библиотеку. XmlDocument doc = новый XmlDocument(); doc.LoadXml (XMLDATA); http://stackoverflow.com/questions/1238528/parse-xml-document-in-c-sharp – Ric

+0

Только один вопрос. Где этот входной поток хранится в запросе? Как часть заголовка? – mko