【发布时间】:2011-06-16 22:25:09
【问题描述】:
我有一个看起来像这样的控制器,用于将 xml 导入我的站点:
[HttpPost]
public ActionResult Import(string xml)
{
我有一个独立的应用程序,它读取一个 xml 文件并将其发送到 url。它看起来像这样:
static void Main(string[] args)
{
var reader = new StreamReader(@"myfile.xml");
var request = WebRequest.Create("http://localhost:41379/mycontroller/import");
request.Method = "POST";
request.ContentType = "text/xml";
StreamWriter sw = new StreamWriter(request.GetRequestStream());
sw.Write(reader.ReadToEnd());
sw.Close();
var theResponse = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(theResponse.GetResponseStream());
var response = sr.ReadToEnd();
}
控制器被正确调用,但是当我在那里闯入时,参数为空。我很确定我只是没有设置正确的内容类型或类似的东西。对 xml 进行编码以便框架能够正确获取它并将其提供给控制器的正确方法是什么?
【问题讨论】:
-
你在哪里将 xml 内容传递给操作?
-
我正在将其写入请求流。
-
但你没有给它一个名字。它需要是一个正式命名的 HTTP POST 参数。
-
您还缺少很多用于流和请求的 using 语句
-
@crice,是的,但这就是整个程序,所以无论如何它们都会被处理掉。 @kirk,这就是我要问的问题。
标签: c# asp.net http controller