環境

  • macOS Sonoma 14.0(Apple M1 Pro)
  • .NET 6.0
  • Visual Studio Community 2022 for Mac 17.6.6

讀取檔案、建立請求及傳送請求

var filename = "test.png";

// 建立 HttpClient 實體
using (var client = new HttpClient())
{
    // 建立 FileStream
    using (Stream stream = new FileStream(filename, FileMode.Open, FileAccess.Read,
            FileShare.ReadWrite, 4096, FileOptions.SequentialScan))
    {
        // 建立 multipart/form-data 類型的 HttpContent
        using (var content = new MultipartFormDataContent())
        {
            // 將文字的 key-value 加入 content
            content.Add(new StringContent("40fe36a4-b5b3-485a-b18e-5127106b3795"), "\"Id\"");

            // 將檔案加入 content
            // 最後一個檔名參數必須要加否則會出錯
            content.Add(new StreamContent(stream), "\"File\"", filename);

            // 傳送請求
            var responseMessage = await client.PostAsync("https://localhost:7113/api/File", content);

            // 讀取回覆內容
            var responseContent = await responseMessage.Content.ReadAsStringAsync();
            Console.WriteLine(responseContent);
        }
    }
}
參考資料