如何通过http post方法接受xml文件并解析请求头。

时间:2014-03-24 19:04:15

标签: c# asp.net asp.net-mvc-4 asp.net-web-api asp.net-web-api2

我从web broser rest客户端发送Xml文件。我需要在asp.net web api http post方法中接受xml文件。

如何从asp.net web api http post方法获取xml文件内容,文件名和标题内容。?

我引用了一些msdn链接,例如http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2,我没有得到这个教程

不知怎的,我写了代码

HttpRequestMessage request = this.Request;
var task = this.Request.Content.ReadAsStreamAsync();

task.Wait();
Stream requestStream = task.Result;

string inp = request.Content.ReadAsStringAsync().Result;
string result = await request.Content.ReadAsStringAsync(); 
try
{
    Stream fileStream = File.Create(@"c:\\test\\1.xml");
    requestStream.CopyTo(fileStream);
    fileStream.Close();
    requestStream.Close();
}
catch (IOException)
{
    throw new HttpResponseException("A generic error occured. Please try again later.", HttpStatusCode.InternalServerError);
}

通过上面的代码我没有得到完整的xml内容。

我是asp.net web api和.net框架的新手。 请提供实施此程序和代码的程序。

1 个答案:

答案 0 :(得分:0)

如果您通过文件上传发布XML文件,那么this link at www.asp.net应该有所帮助。否则,如果您只是发布一个字符串,那么除了在控制器方法中提供字符串参数以接收XML字符串之外,您不应该做任何特殊操作(在这种情况下,Web API将自动为您执行映射)