Tôi đang cố gắng gửi chuỗi xml qua yêu cầu HTTP và nhận nó ở đầu bên kia. Trên đầu nhận, tôi luôn nhận được rằng xml là null. Bạn có thể cho tôi biết tại sao không?Làm thế nào để gửi xml thông qua một yêu cầu HTTP, và nhận được nó bằng cách sử dụng ASP.NET MVC?
Gửi:
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, 0, bytes.Length);
}
string response = "";
using (System.Net.WebResponse resp = req.GetResponse())
{
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
response = sr.ReadToEnd().Trim();
}
}
Nhận:
[HttpPost]
[ValidateInput(false)]
public ActionResult Index(string xml)
{
//xml is always null
...
return View(model);
}
Có vẻ một chút xấu xí, nhưng làm việc cho tôi quá với MVC 4. – AFract
Nhờ nó cũng làm việc cho tôi .. .Nếu bạn gửi bài nó như một dòng suối bạn phải đọc luồng đầu vào để nhận dữ liệu. Để nhận được "xml" có thể đeo được, bạn phải gửi chuỗi này bằng chuỗi truy vấn dưới dạng thông số bài đăng –