winform怎么調(diào)用webapi上傳文件

小億
234
2024-03-01 14:46:19

要在WinForm應(yīng)用程序中調(diào)用WebAPI上傳文件,你可以使用HttpClient類來(lái)發(fā)送HTTP請(qǐng)求。以下是一個(gè)簡(jiǎn)單的示例代碼來(lái)演示如何實(shí)現(xiàn)這一目標(biāo):

首先,你需要在WinForm應(yīng)用程序中添加一個(gè)按鈕和一個(gè)文件選擇對(duì)話框,用于選擇要上傳的文件。

然后,你可以在按鈕的Click事件中編寫以下代碼來(lái)調(diào)用WebAPI上傳文件:

private async void btnUpload_Click(object sender, EventArgs e)
{
    using (HttpClient client = new HttpClient())
    {
        // 設(shè)置WebAPI的URL
        string apiUrl = "http://example.com/api/uploadfile";

        // 選擇要上傳的文件
        OpenFileDialog openFileDialog = new OpenFileDialog();
        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
            string filePath = openFileDialog.FileName;

            // 讀取文件內(nèi)容
            byte[] fileContent = File.ReadAllBytes(filePath);

            // 創(chuàng)建MultipartFormDataContent對(duì)象
            MultipartFormDataContent content = new MultipartFormDataContent();
            ByteArrayContent fileContentData = new ByteArrayContent(fileContent);
            content.Add(fileContentData, "file", Path.GetFileName(filePath));

            // 發(fā)送HTTP請(qǐng)求
            HttpResponseMessage response = await client.PostAsync(apiUrl, content);

            if (response.IsSuccessStatusCode)
            {
                MessageBox.Show("文件上傳成功!");
            }
            else
            {
                MessageBox.Show("文件上傳失敗");
            }
        }
    }
}

在上面的代碼中,我們使用HttpClient類來(lái)發(fā)送一個(gè)POST請(qǐng)求,將文件內(nèi)容作為MultipartFormDataContent發(fā)送到WebAPI的指定URL。如果上傳成功,將會(huì)顯示一個(gè)成功的消息框,否則會(huì)顯示一個(gè)失敗的消息框。

請(qǐng)確保在調(diào)用WebAPI之前,對(duì)WebAPI的URL進(jìn)行正確的配置,并確保文件選擇對(duì)話框選擇的文件是存在的。

0