You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RestSharp请求中正确配置自定义日期序列化格式

问题原因

UseSerializer方法配置的序列化器仅作用于响应内容的反序列化流程,AddJsonBody在序列化请求体时默认不会读取该全局配置,因此你自定义的日期格式不会生效。

解决方案

以下三种方案按兼容性和稳定性优先级排序:

方案1:手动序列化请求体(全版本兼容)

放弃使用AddJsonBody,改用AddStringBody自行控制序列化规则,和你返回时使用的JsonConvert逻辑完全一致:

if (body != null)
{
    var serializeSettings = new JsonSerializerSettings
    {
        DateFormatString = "yyyy-MM-dd HH:mm:ss"
    };
    string jsonBody = JsonConvert.SerializeObject(body, serializeSettings);
    request.AddStringBody(jsonBody, "application/json");
}

方案2:为当前请求直接指定序列化器(适配RestSharp v106及更低版本)

直接给RestRequest实例绑定自定义序列化器,优先级高于全局配置:

var request = new RestRequest(GetMethod(method));
request.JsonSerializer = new RestSharp.Serialization.Json.JsonSerializer 
{ 
    DateFormat = "yyyy-MM-dd HH:mm:ss" 
};

方案3:新版本RestSharp正确配置方式(适配RestSharp v107及以上版本)

v107之后RestSharp重构了配置逻辑,需要在初始化RestClientOptions时指定序列化器:

var clientOptions = new RestClientOptions(fullUri)
{
    Serializer = () => new RestSharp.Serialization.Json.JsonSerializer 
    { 
        DateFormat = "yyyy-MM-dd HH:mm:ss" 
    }
};
var client = new RestClient(clientOptions);
验证方法

发起请求后可以打印response.Request.Content查看实际请求体的日期格式,确认配置是否生效。

内容的提问来源于stack exchange,提问作者jstuardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 11:24:06