WebClient设置标头
我如何在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);
如果标头已存在:
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。
看来你无法使用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\"}"));
您是否尝试过以下语法: client.Headers.Add("Content-Type", "image/jpeg");
什么是你的堆栈跟踪? 你在什么时候设置这个? 你在运行什么版本的IIS / OS?
如果使用UploadValues方法,则无法更改Content-Type,它必须是application / x-www-form-urlencoded,请参阅webclient源代码