利用Fiddler(Classic)上傳檔案

Fiddler是一個好用的Web封包攔截分析工具,也是一個不錯的Web測試工具。
前一篇「Asp.Net Core Kestrel設定Request Body Size」調整了Request body size之後,因為要測試的Api是直接從Request.Body取得Stream,沒辦法透過Swagger的Web UI介面來選擇檔案上傳,所以就用到了Fiddler這套軟體。

通常使用Fiddler的時候是從左邊選擇對應的Request記錄,從右邊的「Inspectors」頁籤中查看攔截下來的內容,畫面如下:

不過若是要透過Fiddler來發出Request進行測試,則是需要切換到「Composer」這個功能頁籤,如果是要上傳檔案的話則是選擇下圖藍色框的「Upload file…」文字來選擇檔案,選完檔案之後會在下面的Request Body加入一些文字:

如果後端的Api是直接透過Request.Body取得Stream來作為檔案的話,只要保留上圖第二個藍色框的「<@INCLUDE … @>」這一段文字即可,否則取得的Stream會無法如預期的作為檔案的Stream,例如下面的程式碼就是透過Request.Body將Stream直接作為zip檔案使用,如果包含藍色框以外的文字,就會有Exception。

try
{
    using (var zip = new ZipArchive(Request.Body))
    {
        return Ok();
    }
} catch (InvalidDataException)
{
    return BadRequest("body is not in zip format");
}

發佈留言

%d 位部落客按了讚: