C# 通过网络客户端上传文件
我必须将使用以前的代码生成的文件XML上载到web服务,该服务提供了以下信息: 网址http://www.example.com/upload 端口1234 方法POST或PUT 所以我在这里搜索了很多,找到了一些使用WebClient的代码,这些代码似乎正是我所需要的C# 通过网络客户端上传文件,c#,upload,webclient,C#,Upload,Webclient,我必须将使用以前的代码生成的文件XML上载到web服务,该服务提供了以下信息: 网址http://www.example.com/upload 端口1234 方法POST或PUT 所以我在这里搜索了很多,找到了一些使用WebClient的代码,这些代码似乎正是我所需要的 try { using (WebClient webclient = new WebClient()) { byte[] rawResponse = webclient.UploadFile(ht
try
{
using (WebClient webclient = new WebClient())
{
byte[] rawResponse = webclient.UploadFile(httpUrl, xmlNewFile);
Console.WriteLine("Remote Response: {0}", System.Text.Encoding.ASCII.GetString(rawResponse));
Console.ReadLine();
}
}
catch (Exception ex)
{
uploadError = true;
}
我的httpUrl看起来像http://www.example.com:1234/upload.
问题是我得到了一个第一次机会异常在使用UploadFile命令运行该行之后,System.dll中立即出现了类型为“System.Net.WebException”的第一次机会异常。
我可以用浏览器在给定的端口上打开给定的URL,所以连接本身不应该是问题
你知道从哪里开始查找导致错误的原因吗?
谢谢
编辑:好的,谢谢你们,现在我知道我从服务器得到了一个错误
System.Net.WebException: The remote server returned an error: (403) Forbidden.
at System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
at System.Net.WebClient.UploadFile(String address, String fileName)
at XML_Export.Program.Main(String[] args) in Program.cs:line 177
有趣的是,我的浏览器有200个OK。。。嗯。您必须检查正在处理的异常。我通常是这样记录的
try
{
//some cool stuff with webClient
}
catch (WebException ex)
{
using (var stream = ex.Response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
var s = reader.ReadToEnd();
throw new Exception(s, ex);
}
}
catch (Exception e)
{
throw e;
}
来自WebException的消息是什么?如果你看http://www.example.com/upload 表单是否发布到另一个位置?提示:捕获异常并不对其执行任何操作,甚至不记录它,这很少是一个好主意。浏览器中的httpUrl为我提供了一个带有HTTP/1.1 200 OK日期:19.09.2014时间:16:32:58 CET的白色页面。好的,我将尝试如何记录异常-给我几分钟。