1
我想从使用RestSharp的C#ASP.NET 4.0应用程序中调用REST服务。告诉RestSharp *不*要添加特定的HTTP标头
这是一个非常简单的POST调用https://地址;我的代码是这样的(CheckStatusRequest
是一个普通的简单的DTO有四五string
和int
性能 - 没有任何幻想):
public CheckStatusResponse CheckStatus(CheckStatusRequest request) {
// set up RestClient
RestClient client = new RestClient();
string uri = "https://.......";
// create the request (see below)
IRestRequest restRequest = CreateRequestWithHeaders(url, Method.POST);
// add the body to the request
restRequest.AddBody(request);
// execute call
var restResponse = _restClient.Execute<CheckStatusResponse>(restRequest);
}
// set up request
private IRestRequest CreateRequestWithHeaders(string uri, Method method) {
// define request
RestRequest request = new RestRequest(uri, method);
// add two required HTTP headers
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
// define JSON as my format
request.RequestFormat = DataFormat.Json;
// attach the JSON.NET serializer for RestSharp
request.JsonSerializer = new RestSharpJsonNetSerializer();
return request;
}
,当我通过提琴手发送这些请求,看看有什么我有问题事情是,我的要求突然得到一个第三和不必要的HTTP标头:
POST https://-some-url- HTTP/1.1
Accept: application/json
User-Agent: RestSharp/104.4.0.0
Content-Type: application/json
Host: **********.com
Content-Length: 226
Accept-Encoding: gzip, deflate <<<=== This one here is UNWANTED!
Connection: Keep-Alive
我突然有Accept-Encoding
HTTP标头,这是我从来没有指定(和我不希望在那里)。而现在我的回应不再是正确的JSON(我可以解析),但突然间我得到了gzip压缩的二进制数据(当尝试进行JSON反序列化时,这并不是很好)...
如何摆脱第三个不需要的HTTP头?
- 我试着将它设置为别的东西 - 无论我输入刚刚被追加到这些设置
- 我试图以某种方式“清”即HTTP头 - 没有任何成功
- 我试图找到一个属性该RESTClient实现或RestRequest类指定“不使用压缩程序”
谢谢 - 我很期待RestSharp团队能够在即将发布的官方版本中添加此功能,并创建自己的定制版本的RestSharp .... – 2015-04-22 08:18:43