无法在Rest请求中添加日期参数(Rest Sharp)

时间:2015-03-16 15:32:37

标签: c# restsharp request-headers

我正在尝试将一些JSON信息发送到服务器。我向主体添加了一个预序列化的字符串,并将一些属性放在标题中。

            RestClient client = new RestClient(requURI);
            RestRequest request = new RestRequest(reqPath, method);
            request.RequestFormat = DataFormat.Json;
            request.JsonSerializer.ContentType = "application/json; charset=utf-8";

            request.AddHeader("Date", getIsoStringFromDate(DateTime.Now));
            request.AddParameter("application/json; charset=utf-8", JSonString, ParameterType.RequestBody);

除了没有出现的日期标题外,一切都很完美。当我将行更改为

           request.AddHeader("Datexxx", getIsoStringFromDate(DateTime.Now));

它将显示在标题中(参见网络跟踪)

          System.Net Information: 0 : [5620] ConnectStream#61150033 -   Header 
          {
           Datexxx: 2015-03-16 16:19:39
           Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml
           User-Agent: RestSharp 104.1.0.0
           Content-Type: application/json; charset=utf-8
           Host: localhost:8080
           Content-Length: 620
           Accept-Encoding: gzip, deflate
           Connection: Keep-Alive
          }

我认为“日期”是Rest Sharp的预定义或预填充值。

我添加了一个带有

的dateFormat定义
          request.DateFormat = "MMMM dd, yyyy";

但仍然没有显示日期标题属性。在添加之前还尝试清除所有参数,但也没有帮助。

有一个关于这个的github错误但它已经超过2年了......也许我只是缺少类似“includeDateInHeader”开关的东西。

我使用.Net 3.5和Rest Sharp 104.1.0.0。或105.1.0.0。 Thx提前!

1 个答案:

答案 0 :(得分:0)

似乎某些属性(例如内容类型日期)无法作为参数添加,但会在内部添加。要改变“内容类型”的值,我必须更改序列化设置(尽管我没有使用它,因为我之前在序列化中添加了一个json!)

RestClient client = new RestClient(requURI);
RestRequest request = new RestRequest(reqPath, method);
request.RequestFormat = DataFormat.Json;
request.Parameters.Clear();             
request.AddHeader("Date", getIsoStringFromDate(DateTime.Now));
            request.JsonSerializer.ContentType = "application/json; charset=utf-8";

一旦我这样做,标题出现了预期:

System.Net Information: 0 : [5620] ConnectStream#61150033 -   Header 
{
 Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml
 User-Agent: RestSharp 104.1.0.0
 Content-Type: application/json; charset=utf-8
 ...
}