我需要连接到第三方服务,需要进行Https Post操作,并发送自定义内容类型。
我正在使用WebClient,但是我找不到如何设置它的方法。我尝试创建一个新类并覆盖CreateRequest方法,但这会导致请求失败。
有没有一种方法可以在不重写CopyHeadersTo方法的情况下完成此操作?
编辑 CopyHeaderTo是我在使用.NET Reflector时看到的方法。它从私有属性中获取所有请求头,包括Content-Type,并从GetWebRequest调用。
我需要连接到第三方服务,需要进行Https Post操作,并发送自定义内容类型。
我正在使用WebClient,但是我找不到如何设置它的方法。我尝试创建一个新类并覆盖CreateRequest方法,但这会导致请求失败。
有没有一种方法可以在不重写CopyHeadersTo方法的情况下完成此操作?
编辑 CopyHeaderTo是我在使用.NET Reflector时看到的方法。它从私有属性中获取所有请求头,包括Content-Type,并从GetWebRequest调用。
您可以尝试将内容添加到Headers集合中。
myWebClient.Headers.Add("Content-Type","application/xxx");
webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
我刚刚错过了Request.ContentType
属性。如果重写了GetWebRequest
方法,则将ContentType
设置为所需的任何值即可。
但是,与第三方的连接仍然无法正常工作。真费解。
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
client.Headers["Content-Type"] = "application/json";