直接上代码
/**
* excludes: 极个别不需要转换的键,默认为 [],参数形式:[key1, key1, ...] 例如:turn(['k1', 'k2'])
* 加参数原因:一般不需要设置,但是由于判断的毕竟不完善,
* 防止某些键比如 price 也自动转换成了时间戳,只需要单独将 price 设置里边即可 ['price']
*/
function turn(excludes = []){
var mode = pm.request.body.mode
console.log(pm.request.body.mode)
turnQs(excludes)
eval(`turn${
mode}([...excludes])`)
}
function turnQs(excludes = []){
var qs = pm.request.url.getQueryString()
qs.split('&').forEach(s => {
var [k, v] = s.split('=')
if(!excludes.includes(k)){
var times = new Date(v).getTime()
if(!isNaN(times)){
pm.request.url.query.remove(k)
pm.request.url.query.add({
"key": k, "value": Math.floor(times / 1000).toString()})
}
}
})
}
function turnraw(excludes = []){
var raw = JSON.parse(pm.request.body.raw)
var ret = {
}
Object.entries(raw).forEach(([k, v])=>{
if(!excludes.includes(k)){
var times = new Date(v).getTime()
if(isNaN(times)){
ret[k] = v
} else {
ret[k] = Math.floor(times / 1000)
}
} else {
ret[k] = v
}
})
pm.request.body.raw = JSON.stringify(ret)
}
function turnformdata(excludes = []){
pm.request.body.formdata.each(item=>{
console.log(item)
var {
key: k, value: v, type: t} = item
if(!excludes.includes(k)){
var times = new Date(v).getTime()
if(!isNaN(times)){
pm.request.body.formdata.remove(k)
pm.request.body.formdata.add({
"key": k, "value": Math.floor(times / 1000).toString(), "type": t})
}
}
})
}
function turnurlencoded(excludes = []){
pm.request.body.urlencoded.each(item=>{
var {
key: k, value: v} = item
if(!excludes.includes(k)){
var times = new Date(v).getTime()
if(!isNaN(times)){
pm.request.body.urlencoded.remove(k)
pm.request.body.urlencoded.add({
"key": k, "value": Math.floor(times / 1000).toString()})
}
}
})
}
// 例子:
turn(['a','d', 'ccc_time'])
用法
使用 Demo
形式一 - formdata
形式二 - x-www-form-urlencoded
形式三 - body - raw - JSON 格式