【问题标题】:RestSharp connects to WebApi - Datetime Timezone problemsRestSharp 连接到 WebApi - Datetime 时区问题
【发布时间】:2018-03-28 09:57:25
【问题描述】:

我在以下对象之间的通信中遇到了日期时间属性问题:

  • site#1 使用 RestSharp
  • site#2 使用 WebApi。

版本 1

站点#1

// SEND 
var client = new RestClient(baseUrl);
var request = new RestRequest(serviceUrl, Method.POST);
var jsonBody = JsonConvert.SerializeObject(model);
request.AddParameter("text/json", jsonBody, ParameterType.RequestBody);
var result = client.Execute<T>(request);

// RECEIVE 
var client = new RestClient(baseUrl);
var request = new RestRequest(serviceUrl, Method.GET);
var data = client.Execute<T>(request).Data

站点#2

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings =
     new JsonSerializerSettings
         {
              DateFormatHandling = DateFormatHandling.IsoDateFormat,
              DateTimeZoneHandling = DateTimeZoneHandling.Utc,
         };

结果:

  • 在站点#1 我发送 01.01.2018 12:00 AM
  • 在站点#2 我正在接收 01.01.2018 12:00 AM
  • 当 site#1 请求对象时,现在我收到:31.12.2017 11:00 PM

第 2 版 我尝试在站点#1 上使用不同的发送方式

request.AddJsonBody(model);

结果:

  • 在站点#1 我发送 01.01.2018 12:00 AM
  • 在站点 #2 我正在接收 31.12.2017 晚上 11:00
  • 但是,如果我更正了站点#2 数据库中的值,则该值会正确地从站点#2 发送回站点#1(基本上与版本 #1 相反)

我什至在同一台机器、相同的文化、相同的时区进行此测试,但我当然想找到一个适用于不同时区的机器的解决方案。

【问题讨论】:

  • 您需要分享将数据保存到site2数据库的代码。还请告诉我们您在 site1 上究竟是如何填充 model 的?
  • 您在 site1 和 site2 上是否有相同的序列化程序设置(时区处理)。另外,你能检查一下site1序列化后日期的真实值吗?

标签: c# asp.net-web-api asp.net-web-api2 restsharp


【解决方案1】:

使用版本 1:我能够在站点#1 上解决此问题

在接收部分:

 /************************************************/
 // TRY #1 - OLD
 //var tempData = client.Execute<T>(request).Data;
 /************************************************/
 // TRY #2 - NEW
 var response = client.Execute(request);
 var tempData = JsonConvert.DeserializeObject<T>(response.Content);
 /************************************************/

现在,我发送/保存/获取相同的日期时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2020-10-01
    • 2010-12-18
    • 2021-03-13
    相关资源
    最近更新 更多