无法使用WebClient .Net 4.0以编程方式上载csv文件

时间:2014-02-27 23:13:11

标签: c# csv file-upload .net-4.0 webclient

我正在尝试上传一个csv文件,但我似乎无法让它以编程方式工作。如果我在Chrome中使用Postman发送它可以正常工作的文件,这就是它发送的内容(Fiddler输出):

------WebKitFormBoundary2YsMyLR3QAPruTy4
Content-Disposition: form-data; name="Content-Type"; filename="613022.csv"
Content-Type: application/vnd.ms-excel

// File Content here

------WebKitFormBoundary2YsMyLR3QAPruTy4--

但是,使用此代码:

   WebClient wc = new WebClient();
   wc.Credentials = new NetworkCredential(user, pw);
   wc.Headers[HttpRequestHeader.Cookie] = "OBBasicAuth=fromDialog";
   wc.Headers[HttpRequestHeader.ContentType] = "application/vnd.ms-excel";
   wc.UploadFile(baseURL + service + apiVersion + resource, "post", file);

结果(Fiddler输出):

-----------------------8d101dbe85fe96c
Content-Disposition: form-data; name="file"; filename="613022.csv"
Content-Type: application/vnd.ms-excel

// File Content here

-----------------------8d101dbe85fe96c--

哪个不起作用,服务器返回503错误。我看到的唯一区别是Content-Disposition名称。我该如何设置或有更好的方法来实现这一目标?

2 个答案:

答案 0 :(得分:0)

也许你需要在方法参数中“上传”而不是“发布” - 只是猜测。

答案 1 :(得分:0)

我认为原始方法的问题是WebClient.UploadFile以服务器意外的方式生成multipart/form-data请求,因此是5xx错误代码。

在考虑了一下之后,我认为this question的答案应该为您提供根据您的需求调整请求的起点。