2017-01-17 43 views
0

我有一個Web API 2 POST端點,它接受一個參數,查詢數據庫並返回一個xml字符串作爲響應。Web API 2,將字符串作爲文件返回

public async Task<IHttpActionResult> Post(long groupId) 
{ 
    People people = await _someService.GetPeople(groupId); 
    XElement peopleXml = _xmlService.ConverToXml(people); 
    return Ok(peopleXml); 
} 

如何將xml作爲文件返回?

+0

這可能是有益的http://stackoverflow.com/questions/30125702/how-to-return-a-file-從幅材-API控制器 –

回答

0

想通了我自己,但我希望有一個更簡單的方法 -

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; 
} 
相關問題