如何设置WebClient Content-Type标头?

MaL*_*_eS 21 c# content-type webclient

要连接到第三方服务,我需要制作一个Https Post.其中一个必备条件是发送自定义内容类型.

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

有没有办法做到这一点,而无需重写CopyHeadersTo方法?

提前致谢

编辑 CopyHeaderTo是我使用.NET Reflector看到的一种方法.它从GetWebRequest中取消,并从私有属性设置所有请求标头,包括Content-Type.

Dar*_*rov 42

您可以尝试添加到Headers集合.

myWebClient.Headers.Add("Content-Type","application/xxx");
Run Code Online (Sandbox Code Playgroud)

  • 抛出WebException,表示无法更改当前请求的Content-Type. (4认同)
  • 我不得不这样做: _client.Headers["Content-Type"] = "application/Json" 仍然不能正常工作,但至少它可以编译!5. 在 Silverlight 中工作 (2认同)

V K*_*V K 12

webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"


MaL*_*_eS 4

好吧,我只是错过了Request.ContentType财产。如果GetWebRequest方法被重写,则设置ContentType为所需的任何值即可。

尽管如此,与第三方的连接仍无法正常工作。去搞清楚。