【问题标题】:RestSharp AddHeader not workingRestSharp AddHeader 不工作
【发布时间】:2016-10-05 21:08:31
【问题描述】:

我正在使用 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);

【问题讨论】:

  • 我认为是request.Parameters.Clear(); 电话。查看源代码,AddHeader 将一个项目添加到 Parameters 集合中,然后您将其清除。
  • 就是这样!!!我以为Parameters.Clear方法只影响Parameters和Content。
  • 好热的diggity。那我把它添加为答案。

标签: c# restsharp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2018-04-04
    • 1970-01-01
    相关资源
    最近更新 更多