我以前从未使用过WebClient,我不确定是否应该检查服务器的响应以了解上传是否成功,或者如果没有异常我是否可以让文件上传。
如果我应该检查回复,我该怎么做?解析 resposeHeaders 属性?
提前致谢。
The 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
...
}
Note 1举个例子,我有一个文件上传服务,除了 HTTP 200 代码之外,永远不会发出任何其他错误,所有错误都会在服务中捕获,并将这些错误“解析”为返回给调用者的 XML 结构。然后,调用者解析该 XML 以验证上传是否成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)