gpt4 book ai didi

c# - 我应该检查 WebClient.UploadFile 的响应以了解上传是否成功吗?

转载 作者:太空狗 更新时间:2023-10-29 17:33:00 25 4
gpt4 key购买 nike

我以前从未使用过 WebClient,我不确定是否应该检查服务器的响应以了解上传是否成功,或者如果没有异常我是否可以让文件上传。

如果我应该检查响应,我该怎么做?正在解析 resposeHeaders 属性?

提前致谢。

最佳答案

UploadFile 方法返回一个 byte[],其中包含远程服务器返回的响应。根据服务器管理上传请求响应的方式(以及错误情况(参见下面的注释 1)),您将需要检查该响应。您可以通过将其转换为字符串来获取字符串响应,例如,这会将响应写入控制台窗口:

byte[] rawResponse = webClient.UploadFile(url,fileName);
Console.WriteLine("Remote Response: {0}", System.Text.Encoding.ASCII.GetString(rawResponse));

也就是说,如果远程服务器返回 HTTP 200 以外的任何内容(即成功),则对 UploadFile 的调用将抛出 WebException。您可以采用最适合您的应用程序的任何方式捕获和处理它。

所以把它们放在一起

try
{
WebClient webClient = new WebClient();
byte[] rawResponse = webClient.UploadFile(url,fileName);

string response = System.Text.Encoding.ASCII.GetString(rawResponse);

...
Your response validation code
...
}
catch (WebException wexc)
{
...
Handle Web Exception
...
}

注意 1 作为示例,我有一个文件上传服务,除了 HTTP 200 代码之外,它永远不会发出任何其他内容,所有错误都在该服务中被捕获,并且这些错误被“解析”为 XML 结构返回给调用者。然后,调用方解析该 XML 以验证上传是否成功。

关于c# - 我应该检查 WebClient.UploadFile 的响应以了解上传是否成功吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451219/

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