如何在webClient
课程中设置标题?
我试过了:
client.Headers["Content-Type"] = "image/jpeg";
抛出WebException
我的代码:
WebClient client = new WebClient();
client.Headers.Set("Content-Type", "image/png");
client.Headers.Set("Content-Length", length);
client.Headers.Add("Slug", name);
NameValueCollection nvc = new NameValueCollection();
nvc.Add("file", FileContents);
Byte[] data = client.UploadValues(url, nvc);
string res = Encoding.ASCII.GetString(data);
Response.Write(res);
答案 0 :(得分:39)
如果标题已存在:
client.Headers.Set("Content-Type", "image/jpeg");
如果是新标题:
client.Headers.Add("Content-Type", "image/jpeg");
此外,您可能会收到错误,因为您尝试设置标题太晚了。发布您的例外情况,以便我们通知您。
<强>更新强>
看起来对WebClient类的“Content-Type”标题有一些奇怪的限制。查看使用client.Download方法(DownloadData,DownloadFile等...)
查看在webclient上使用“UploadFile”方法是否有效,而不是手动执行。它返回respose body byte []。
如果您继续遇到WebClient问题,请尝试使用普通的旧HttpRequest / HttpWebRequest。
答案 1 :(得分:13)
您似乎无法使用WebClient.UploadValues方法设置Content-type。您可以使用WebClient.UploadData方法
设置Content-type使用类似的东西,
Client.Headers["Content-Type"] = "application/json";
Client.UploadData("http://www.imageshack.us/upload_api.php", "POST", Encoding.Default.GetBytes("{\"Data\": \"Test\"}"));
答案 2 :(得分:0)
您是否尝试过这种语法:client.Headers.Add("Content-Type", "image/jpeg");
你的堆栈跟踪是什么?你在什么时候设置这个?您在哪个版本的IIS / OS下运行?
答案 3 :(得分:0)