c#设置uploadFile内容类型
本文关键字:类型 uploadFile 设置 | 更新日期: 2023-09-27 18:08:58
我正在尝试创建一个api调用到我的服务器,这将允许我上传一个。csv文件。
客户端代码
string url = "http://testserver/testapi";
string filePath = @"C:'test.csv";
using (WebClient wc = new WebClient())
{
wc.Headers.Add("Content-Type", "text/plain");
byte[] responseArray = wc.UploadFile(url, filePath);
}
服务器端代码
string savePath = testSavePath;
foreach (string f in Request.Files.AllKeys)
{
HttpPostedFileBase file = Request.Files[f];
file.SaveAs(savePath);
}
我在这一行得到一个异常byte[] responseArray = wc.UploadFile(url, filePath);
奇怪的是,当我看Request
时,我看到
ContentType="multipart/form-data; boundary=---------------------8d006b7c2a5452c"
.
查看UploadFile的文档,我看到当The Content-type header begins with multipart.
我的问题是为什么contentType被设置为多部分,我如何防止它这样做?
您的客户端代码看起来不错。异常可能来自服务器端。但这很难判断,因为你没有例外。请这样做,你会得到更好的答案。
对于多部分内容类型:WebClient.UploadFile
使用Content-Type
头的值作为文件的内容类型(如果没有设置,默认为application/octet-stream
),而不是整个HTTP请求。实际的HTTP请求总是(正如您所发现的)multipart/form-data
(根据上传文件的HTTP规范),您不能(也不应该)更改它。文档中的注释是指实际文件的内容类型。这意味着您不能要求WebClient
上传自己的多部分文件(这将被包装在另一个多部分HTTP信封中)。