c# - 如何在 C# 中使用 Web API 而不是 json 响应返回和打开文件
问题描述
我一直在关注下面链接的帖子中的答案,以便使用 dotnet api 返回文件以返回文件。
然而,我可以大摇大摆地拨打电话,我得到的只是一个 json 对象,而不是当我直接导航到 URL 时打开文件的浏览器。(https://localhost:5001/api/SiteLink/gandrfiles /1 )。
任何想法为什么浏览器不会打开文件?谢谢!
json返回:
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"Key": "Content-Disposition",
"Value": [
"attachment; filename=Contact_Us_Page.pdf"
]
},
{
"Key": "Content-Type",
"Value": [
"application/octet-stream"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"trailingHeaders": [],
"requestMessage": null,
"isSuccessStatusCode": true
}
我最终遵循了 Amir Shirazi 提供的原始帖子的答案,并且它有效。我不知道为什么 Regfor 的答案没有起到作用,但它在项目中不起作用。
解决方案
您可能需要查看从 API 返回的 Content-Type。试试“application/octet-steam”
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
推荐阅读
- node.js - 服务器发送的事件不适用于 Azure 中的 Window 应用服务
- postgresql - Postgres 选择进入具有功能的临时表
- resources - Laravel Nova:绕过 getOriginal 的访问器
- vb.net - 如何理解从 Visual Studio 中的 VB 代码自动化 Word 中的强制转换异常?
- python - 在 Django 中清除时如何更改另一个字段值?
- arrays - 循环并向对象添加额外的属性
- jira-plugin - 活动对象:无法处理方法。它不是有效的 getter 或 setter,并且没有提供实现
- docker - 无权推送到 GCR - 但我是该项目的所有者
- javascript - 在 express js 中将中间件捆绑到一个异步错误处理程序中(中央错误处理)
- python - Access ODBC 出现“当前未配置操作系统”错误