ASP.NET Core WebApi - 下载文件导致错误消息

时间:2017-02-27 14:04:51

标签: c# download asp.net-core-webapi

在我的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;
}

1 个答案:

答案 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;

    }