如何在VS Code的REST Client扩展中通过POST请求发送JS日期对象
解决方案:在VS Code REST Client中发送日期数据
REST Client本质是发送HTTP请求,无法直接执行JavaScript代码(比如new Date()、moment()这类对象)——你设置application/javascript后,它只会把new Date()作为纯文本字符串发送,而非执行后的日期结果。正确的做法是将日期对象序列化为服务器可解析的字符串格式,以下是具体实现方式:
1. 手动生成日期字符串(通用方案)
在浏览器控制台、Node.js环境或终端里执行对应JS代码,拿到序列化后的日期字符串,再复制到请求体中:
- ISO 8601标准格式(大部分API默认支持):
执行new Date().toISOString()、moment().toISOString()或dayjs().toISOString(),得到类似2024-05-20T12:34:56.789Z的字符串。 - 自定义格式(如
YYYY-MM-DD HH:mm:ss):
执行moment().format('YYYY-MM-DD HH:mm:ss')或dayjs().format('YYYY-MM-DD HH:mm:ss'),得到对应格式的字符串。
请求示例:
POST https://your-api-url.com/endpoint Content-Type: application/json { "createTime": "2024-05-20T12:34:56.789Z", "customDate": "2024-05-20 14:30:00" }
2. 用REST Client内置变量动态生成(更高效)
REST Client自带日期变量,无需手动生成字符串,直接在请求中使用:
- 生成ISO 8601格式当前时间:
{{$datetime iso8601}} - 生成自定义格式当前时间:
{{$datetime "YYYY-MM-DD HH:mm:ss"}}
请求示例:
POST https://your-api-url.com/endpoint Content-Type: application/json { "currentTime": "{{$datetime iso8601}}", "localDate": "{{$datetime "YYYY-MM-DD HH:mm:ss"}}" }
关键说明
- 不要尝试在请求体中直接写
new Date()或moment(),这些内容会被当作纯文本发送,服务器无法解析为有效日期。 - 确保请求的
Content-Type与请求体格式匹配:发送JSON就用application/json,发送表单用application/x-www-form-urlencoded,无需设置application/javascript。
内容的提问来源于stack exchange,提问作者Prathmesh
相关产品推荐
相关产品推荐

