C# RestSharp接受标题更改
我使用RestSharp在客户端进行开发。我还在服务器端的自定义API中使用Ruby Grape gem。Grape gem可以通过将Accept HTTP头f.e设置为C# RestSharp接受标题更改,c#,ruby,http,restsharp,grape,C#,Ruby,Http,Restsharp,Grape,我使用RestSharp在客户端进行开发。我还在服务器端的自定义API中使用Ruby Grape gem。Grape gem可以通过将Accept HTTP头f.e设置为application/vnd.twitter-v1+json 通过控制台的测试命令工作正常 curl -H Accept=application/vnd.twitter-v1+json /statuses/public_timeline 但是,当我试图为RestRequest设置标头时,服务器上出现了错误404 我不知道为什
application/vnd.twitter-v1+json
通过控制台的测试命令工作正常
curl -H Accept=application/vnd.twitter-v1+json /statuses/public_timeline
但是,当我试图为RestRequest设置标头时,服务器上出现了错误404
我不知道为什么会这样。我发现了服务器返回的另一个问题406 error
——但在我的例子中是404
如何为Accept标头设置自定义值?您可以使用
AddHeader
方法设置自定义Accept
标头
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,那么这应该可以很好地工作
如果您想使用generic
Execute
方法,该方法为您执行自动反序列化,您将遇到问题
从:
RestSharp包括处理XML和JSON的反序列化程序。收到响应后,RestClient根据服务器返回的内容类型选择要使用的正确反序列化程序。可以覆盖默认值(请参见自定义)。支持的内置内容类型包括:
- application/json–JsonDeserializer
- application/xml–XmlDeserializer
- text/json–JsonDeserializer
- text/xml–XmlDeserializer
- *–XmlDeserializer(未指定所有其他内容类型)