c# – 如何通过HTTP请求发送xml,并使用ASP.NET MVC接收它?
发布时间:2020-12-15 07:53:29 所属栏目:百科 来源:网络整理
导读:我试图通过HTTP请求发送一个xml字符串,并在另一端接收它.在接收端,我总是得到xml为null.你能告诉我为什么会这样吗? 发送: var url = "http://website.com"; var postData = "?xml version="1.0" encoding="ISO-8859-1"?xml.../xml"; byte[] bytes = Sy
我试图通过HTTP请求发送一个xml字符串,并在另一端接收它.在接收端,我总是得到xml为null.你能告诉我为什么会这样吗?
发送: var url = "http://website.com"; var postData = "<?xml version="1.0" encoding="ISO-8859-1"?><xml>...</xml>"; byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postData); var req = (HttpWebRequest)WebRequest.Create(url); req.ContentType = "text/xml"; req.Method = "POST"; req.ContentLength = bytes.Length; using (Stream os = req.GetRequestStream()) { os.Write(bytes,bytes.Length); } string response = ""; using (System.Net.WebResponse resp = req.GetResponse()) { using (StreamReader sr = new StreamReader(resp.GetResponseStream())) { response = sr.ReadToEnd().Trim(); } } 接收: [HttpPost] [ValidateInput(false)] public ActionResult Index(string xml) { //xml is always null ... return View(model); } 解决方法
我能够这样工作:
[HttpPost] [ValidateInput(false)] public ActionResult Index() { string xml = ""; if(Request.InputStream != null){ StreamReader stream = new StreamReader(Request.InputStream); string x = stream.ReadToEnd(); xml = HttpUtility.UrlDecode(x); } ... return View(model); } 但是,我仍然很好奇为什么将xml作为参数不起作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |