Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Web API 2,以文件形式返回字符串_File_Asp.net Web Api2_Httpresponse - Fatal编程技术网

File Web API 2,以文件形式返回字符串

File Web API 2,以文件形式返回字符串,file,asp.net-web-api2,httpresponse,File,Asp.net Web Api2,Httpresponse,我有一个WebAPI2POST端点,它接受一个参数,查询数据库并返回一个xml字符串作为响应 public async Task<IHttpActionResult> Post(long groupId) { People people = await _someService.GetPeople(groupId); XElement peopleXml = _xmlService.ConverToXml(people); return Ok(peopleXm

我有一个WebAPI2POST端点,它接受一个参数,查询数据库并返回一个xml字符串作为响应

public async Task<IHttpActionResult> Post(long groupId)
{
    People people = await _someService.GetPeople(groupId);
    XElement peopleXml = _xmlService.ConverToXml(people);
    return Ok(peopleXml);
}
公共异步任务Post(长组ID)
{
People-People=wait\u someService.GetPeople(groupId);
XElement peopleXml=xmlService.ConverToXml(人);
返回Ok(peopleXml);
}

如何将xml作为文件返回呢?

我自己已经解决了,但我希望有一种更简单的方法-

public async Task<IHttpActionResult> Post(long groupId)
{
    People people = await _someService.GetPeople(groupId);
    XElement peopleXml = _xmlService.ConverToXml(people);
    byte[] toBytes = Encoding.Unicode.GetBytes(peopleXml.ToString());

    var stream = new MemoryStream(toBytes);

    var result = new HttpResponseMessage(HttpStatusCode.OK)
    {
        Content = new StreamContent(stream)
    };
    result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
    {
        FileName = "test.txt"
    };
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");

    var response = ResponseMessage(result);
    return response;
}
公共异步任务Post(长组ID)
{
People-People=wait\u someService.GetPeople(groupId);
XElement peopleXml=xmlService.ConverToXml(人);
byte[]toBytes=Encoding.Unicode.GetBytes(peopleXml.ToString());
var stream=新的内存流(toBytes);
var结果=新的HttpResponseMessage(HttpStatusCode.OK)
{
内容=新的流内容(流)
};
result.Content.Headers.ContentDisposition=新系统.Net.Http.Headers.ContentDispositionHeaderValue(“附件”)
{
FileName=“test.txt”
};
result.Content.Headers.ContentType=新的MediaTypeHeaderValue(“文本/普通”);
var响应=响应消息(结果);
返回响应;
}
这可能会有所帮助