在我的asp.net webapi项目中,我需要将字符串json数据作为文件返回。同样重要的是我希望将响应的状态代码设置为200(成功)。我发现很多例子,人们使用MemoryStream和FileStreamResult从服务器获取适当的文件,但它对我不起作用。
不幸的是我总是在浏览器中收到消息"意外错误",尽管serwer代码没有任何例外。我在浏览器中检查了请求的详细信息,它的状态代码为“#34; Bad request" (400)。
我的代码:
[HttpGet()]
public async Task<IActionResult> Download()
{
string jsonData = "example data";
byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);
var stream = new MemoryStream(byteArray);
var result = new FileStreamResult(stream, new MediaTypeHeaderValue("text/json"))
{
FileDownloadName = "testFile.json"
};
return result;
}
答案 0 :(得分:0)
[HttpGet()]
public async Task<HttpResponseMessage> Download()
{
string jsonData = "example data";
byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);
var result = new HttpResponseMessage(HttpStatusCode.OK) {Content = new ByteArrayContent(byteArray)};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue(Inline) { FileName = "testFile.json" };
return result;
}