C# 如何设置WebClient内容类型标题?

C# 如何设置WebClient内容类型标题?,c#,content-type,webclient,C#,Content Type,Webclient,要连接到第三方服务,我需要发布Https帖子。其中一个必备条件是发送自定义内容类型 我正在使用WebClient,但找不到如何设置它。我尝试创建一个新类并重写CreateRequest方法,但这会导致请求崩溃 有没有办法不用重写CopyHeadersTo方法就可以做到这一点 编辑CopyHeaderTo是我见过的一种使用.NET Reflector的方法。它从GetWebRequest调用,并从私有属性设置所有请求头,包括内容类型。您可以尝试添加到集合中 myWebClient.Headers.

要连接到第三方服务,我需要发布Https帖子。其中一个必备条件是发送自定义内容类型

我正在使用WebClient,但找不到如何设置它。我尝试创建一个新类并重写CreateRequest方法,但这会导致请求崩溃

有没有办法不用重写CopyHeadersTo方法就可以做到这一点


编辑CopyHeaderTo是我见过的一种使用.NET Reflector的方法。它从GetWebRequest调用,并从私有属性设置所有请求头,包括内容类型。

您可以尝试添加到集合中

myWebClient.Headers.Add("Content-Type","application/xxx");

我刚刚错过了Request.ContentType属性。如果覆盖了
GetWebRequest
方法,则将
ContentType
设置为所需的任何值都会执行此操作


尽管如此,与第三方的连接仍然不起作用。想想看。

我也遇到过这种情况。并发现您必须使用客户端Http,否则浏览器Http将出于安全原因阻止内容类型的更改。解释一下

webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
client.Headers["Content-Type"] = "application/json";

这会引发WebException,表示当前请愿书的内容类型无法更改。谁会引发此异常?是您要发布到的服务器脚本吗?我已经测试了MSDN中提供的示例,它成功地将内容类型头设置为自定义值。我必须这样做:_client.Headers[“Content Type”]=“application/Json”仍然无法正常工作,但至少它可以编译!在silverlight工作5.只是想知道。。在设置/添加内容类型之前,您应该先调用myWebClient.Headers.Remove(“内容类型”),或者在更广泛的级别上调用myWebClient.Headers.Clear()?