您可以Accept
使用该方法设置自定义标题AddHeader
...
var client = new RestClient("http://example.com/api");
var request = new RestRequest("statuses/public_timeline", Method.GET);
request.AddHeader("Accept", "application/vnd.twitter-v1+json");
var response = client.Execute(request);
var json = response.Content;
如果您愿意自己反序列化 JSON,这应该可以正常工作。
如果你想使用Execute<T>
为你自动反序列化的通用方法,你会遇到问题......
来自关于反序列化的 RestSharp 文档:
RestSharp 包括用于处理 XML 和 JSON 的反序列化程序。收到响应后,RestClient 会根据服务器返回的 Content Type 选择要使用的正确反序列化器。可以覆盖默认值(请参阅自定义)。支持的内置内容类型有:
- 应用程序/json – JsonDeserializer
- 应用程序/xml – XmlDeserializer
- 文本/json – JsonDeserializer
- 文本/xml – XmlDeserializer
- * – XmlDeserializer(未指定所有其他内容类型)
这就是说,默认情况下,如果响应的内容类型不是列出的内容类型之一,RestSharp 将尝试对您的数据使用 XmlDeserializer。这是可定制的,但需要额外的工作。