我的WebApi出現問題。根據請求,回覆作爲json
或csv
返回。對於序列化,我使用NewtonSoft.Json
和我自己的CsvMediaTypeFormatter
。只要我從郵差測試它,反應按預期工作。作爲文件的WebApi下載響應
什麼我與它鬥爭,我想強制瀏覽器保存文件,以防應答是csv
。爲了實現這一點,在我的CsvMediaTypeFormatter
我推翻了SetDefaultContentHeaders
方法如下:
public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType)
{
base.SetDefaultContentHeaders(type, headers, mediaType);
headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "content.csv"
};
}
當我使用郵差測試我的API,我看到了CSV內容爲體,也是頭顯示content-disposition: attachment; filename=content.csv
。但是當它從瀏覽器(我試過Firefox,Chrome和Edge)中彈出時,沒有「Save file as ...」對話框。但是,開發工具顯示正在進行的調用以及具有content-disposition
標題值的響應。
我試着用各種Content-type
值:text/csv
,text/plain
,application/octet-stream
或application/x-unknown
,但沒有成功。
任何想法我做錯了嗎?
啊,有什麼小白我是... – Szeki