RestSharp AddHeader不起作用

时间:2016-10-04 20:22:29

标签: c# restsharp

我正在使用C#和RestSharp 105.2.3构建一个简单的REST / Json Windows客户端。一切都工作得很漂亮,但我指定的额外HTTP标头似乎没有根据Wireshark跟踪添加。我错过了什么或者我应该使用底层HTTP方法吗?

代码很简单,如下所述,我无法在跟踪中看到RequestId标头:

    var client = new RestClient("http://example.com");
    client.Authenticator = new HttpBasicAuthenticator("username", password");

    var requestParams = new RequestItem
    { Parameter1 = "test1", Parameter2 = "test2" };

    var request = new RestRequest("/sample/", Method.POST);
    request.AddHeader("RequestId", "value");

    request.RequestFormat = DataFormat.Json;
    request.Parameters.Clear();
    var requestParamsJson = request.JsonSerializer.Serialize(requestParams);
    request.AddParameter("application/json; charset=utf-8", requestParamsJson, ParameterType.RequestBody);
    IRestResponse<ResponseItem> response = client.Execute<ResponseItem>(request);

1 个答案:

答案 0 :(得分:2)

您需要删除request.Parameters.Clear();来电。 Internally,RestSharp将标题添加到您正在清除的Parameters集合中。因此,删除呼叫或将其移动到添加标题的位置上方将解决问题。