C# 通过网络客户端上传文件

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

我必须将使用以前的代码生成的文件XML上载到web服务,该服务提供了以下信息:

网址http://www.example.com/upload 端口1234 方法POST或PUT

所以我在这里搜索了很多,找到了一些使用WebClient的代码,这些代码似乎正是我所需要的

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的白色页面。好的,我将尝试如何记录异常-给我几分钟。