File Web API 2,以文件形式返回字符串
我有一个WebAPI2POST端点,它接受一个参数,查询数据库并返回一个xml字符串作为响应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
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响应=响应消息(结果);
返回响应;
}
这可能会有所帮助