2016-10-26 21 views
1

有没有一种方法可以通过AJAX发送XML请求,然后在服务器端捕获它并将其用C#写入文本文件(原始XML请求)?发送XML请求并将其导出到C#

至于客户端,我发送它与XMLHttpRequest。 至于服务器端,我不知道如何请求XML以及如何以这种格式编写它。

var xmlData = '<AcquireLicense xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"><challenge><Challenge xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages"><LA xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" Id="SignedData" xml:space="preserve"><Version>1</Version><ContentHeader><WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO>...'; 

       var xmlhttp = new XMLHttpRequest(); 
       xmlhttp.open('POST', 'test.aspx', true); 
       xmlhttp.onreadystatechange = function() { 
        if (xmlhttp.readyState == 4) { 
         if (xmlhttp.status == 200) { 
          alert("OK"); 
         } else { 
          alert("error: status: " + xmlhttp.status + " xmlhttp.readyState: " + xmlhttp.readyState); 
         }       
        }      
       } 
       xmlhttp.setRequestHeader('Content-Type', 'text/xml'); 
       xmlhttp.send(xmlData); 

服务器端,Web窗体Test.aspx文件:

using (System.IO.StreamWriter writer = new System.IO.StreamWriter("c:\\test.txt")) 
    { 
     foreach (String key in Request.Form.AllKeys) 
     { 
      writer.WriteLine("Key: " + key + " Value: " + Request.Form[key]); 
     } 
    } 

但我并不在文件中得到任何东西,因为我不知道,我在获取XML的正确方法。

+1

试试看,如果发生任何问题,你可以问这里。 – mybirthname

+0

我已经发送了它,但是我有服务器端部分的问题,我不知道该怎么做 – Dalibor

+0

显示你有问题的代码。 – mybirthname

回答

0

是的,有,如果你是在后端使用ASP.NET/C#提供给您多种选择:http://asp.net/mvc

一旦你的数据,你可以使用System.IO API编写的文件到服务器,或者做什么否则你需要这些数据。

你可以得到关于模型的详细信息在这里结合:
https://msdn.microsoft.com/en-us/library/6w2tb12s.aspx

https://docs.asp.net/en/latest/mvc/models/model-binding.html


如果您使用的web表单,您可以使用事件处理程序简单地处理页面的代码隐藏在服务器端组件


编辑:为了响应您的编辑添加的代码...您应该看看InputStream财产的Request财产。您发布XML作为text/xml,这意味着你要读请求主体获取内容:
https://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream(v=vs.110).aspx

+0

谢谢,有没有办法在网页表单中完成它? – Dalibor

+0

@Dalibor编辑答案,包括有关如何处理webforms页面中的事件的信息:) –

+0

@Dalibor,在您的编辑中添加了一些额外的信息 –