私は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を試しました)、[名前を付けてファイルを保存...]ダイアログは表示されません。しかし、開発ツールは、呼び出しが行われたことと、content-disposition
ヘッダー値を持つ応答を示します。
私は様々なContent-type
値で試してみました:text/csv
、text/plain
、application/octet-stream
またはapplication/x-unknown
、ない成功。
私が間違っていることは何ですか?
ああ、何のnoob私は... – Szeki