我是否应该检查WebClient.UploadFile的响应以了解上传是否成功?我以前从未使用过WebClient,我不确定是否应该检查服务器的响应以查看上传是否成功,或者如果没有异常我是否可以将文件保存为已上传。如果我应该检查响应我应该怎么做?解析resposeHeaders属性?提前致谢。UploadFile方法返回一个byte[],其中包含远程服务器返回的响应。根据管理对上传请求的响应的服务器(以及错误情况(参见下面的注释1)),您需要检查该响应。您可以通过将其转换为字符串来获得字符串响应,例如,这会将响应写入控制台窗口:byte[]rawResponse=webClient.UploadFile(url,fileName);Console.WriteLine("远程响应:{0}",System.Text.Encoding.ASCII.GetString(rawResponse));也就是说,如果远程服务器返回HTTP200以外的任何内容(即成功),则对UploadFile的调用将抛出WebException。这样您就可以以最适合您的应用程序的方式捕获和处理它。所以把它们放在一起试试{WebClientwebClient=newWebClient();byte[]rawResponse=webClient.UploadFile(url,fileName);字符串响应=System.Text.Encoding.ASCII.GetString(rawResponse);...您的响应验证码...}catch(WebExceptionwexc){...HandleWebException...}注1例如,我有一个文件上传服务,除了HTTP200代码外,它从不发出任何其他内容,所有错误都在服务中被捕获,这些错误被“解析”成返回给调用者的XML结构。然后,调用者解析该XML以验证上传是否成功。如果上传返回200(或200范围)以外的状态代码,WebClient.UploadFile应该抛出WebException。作为插件,我在BizArk上有一个代码参考库,其中包含一个WebHelper类,可以轻松地同时上传多个文件和表单值。该项目称为BizArk。在msdn提供的例子中,他们检查响应,所以它可能是好的风格,但我倾向于自己不这样做,而且还没有被烧毁。您还可以使用异步方法UploadFileAsync并检查在事件UploadFileCompletedEventHandler事件中发生的事件处理程序UploadFileCompletedEventHandler结果。您可能必须添加额外的同步代码。以上是C#学习教程:是否应该查看WebClient.UploadFile的响应才能知道上传是否成功?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
