gpt4 book ai didi

c# - 如何获取上传进度?

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:07 25 4
gpt4 key购买 nike

对不起我的英语。我有一种方法可以将 StorageFile 发送到服务器。我尝试使用 Windows.Web.Http.HttpClient,但不起作用(从服务器获得无效响应),所以我使用 System.Net.Http.HttpClient
这是我的代码:

    public static async void Upload(string uri, StorageFile data, Action<double> progressCallback = null)
{
try
{
byte[] fileBytes =await ReadFile(data);
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
MultipartContent content = new System.Net.Http.MultipartFormDataContent();
var file1 = new ByteArrayContent(fileBytes);
file1.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "file1",
FileName = data.Name,
};
content.Add(file1);

System.Net.Http.HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();

var raw_response = await response.Content.ReadAsByteArrayAsync();
var r2 = Encoding.UTF8.GetString(raw_response, 0, raw_response.Length);
if (r2[0] == '\uFEFF')
{
r2 = r2.Substring(1);
}
Logger.Info(r2);
}
catch (Exception exc)
{
Logger.Error( exc);
}
}

是否可以更改代码以在回调函数中接收有关下载文件的进度?

最佳答案

在 Windows 运行时,您可以尝试切换到 Windows.Web.HttpClient 类(class)。它的 PostAsync 方法返回 IAsyncOperationWithProgress<HttpResponseMessage, HttpProgress> 界面。这个界面有 Progress 您可以在等待结果之前简单地订阅该事件。

关于c# - 如何获取上传进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34855909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com