**瀏覽器能下載 → Fiddler 抓包 → C# 模仿請求頭/Body/Cookie 發送 → 接收響應流保存文件**。
Copy → Just Url / Headers / Body。HttpWebRequest 或 HttpClient 完全複製:HttpWebResponse,讀取 GetResponseStream() 寫入文件。
using (var client = new HttpClient())
{
// 複製請求頭
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 ...");
client.DefaultRequestHeaders.Add("Referer", "https://example.com/page");
client.DefaultRequestHeaders.Add("Cookie", "sessionid=abc; ...");
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("param1", "value1"),
new KeyValuePair<string, string>("param2", "value2"),
});
var response = await client.PostAsync("https://example.com/download", content);
response.EnsureSuccessStatusCode();
// 從 Content-Disposition 解析文件名
string fileName = "download.bin";
if (response.Content.Headers.ContentDisposition != null)
fileName = response.Content.Headers.ContentDisposition.FileName.Trim('"');
using (var fs = new FileStream(fileName, FileMode.Create))
{
await response.Content.CopyToAsync(fs);
}
}
application/octet-stream 直接保存即可。HttpWebRequest 手動分塊下載,支持斷點續傳。