美文网首页
"msg": "invalid character '+' lo

"msg": "invalid character '+' lo

作者: lalalasa | 来源:发表于2020-03-30 15:06 被阅读0次

近期在使用Postman接口的遇到标题中的报错:
"msg": "invalid character '+' looking for beginning of value"
发现一个小细节,把过程记录在这

实际的接口请求:

{
"base_info":{"type":1},
"contact_info":
    {"phone":"+886-22203678",
    "email":"demo@demo.com"
    },
"media_info":
    {"media_type":1}
}

根据实际的接口参数,在Postman中添加body
body:

{
"base_info":{"type":1},
"contact_info":
    {"phone":{{phone}},
    "email":{{email}}
    },
"media_info":
    {"media_type":1}
}

在pre-request script中创建phone和email变量
pre-request script:

var id_begins_with = 1424000000
var id = Math.floor(Math.random() * 999999) ;

var mix_id = id_begins_with + id
str = mix_id.toString()
// str = '' + mix_id
console.log(str)
var phone = "+886-" + str
var email = str + "@auto.com"

console.log(phone)
console.log(email)

pm.environment.set("id", mix_id);
pm.environment.set("phone", phone);
pm.environment.set("email", email);

发送请求,response body返回报错
response body:

{
    "code": 2,
    "msg": "invalid character '+' looking for beginning of value",
    "data": null
}

在pre-request script中查看phone和email的字符类型:

console.log(typeof phone)
console.log(typeof email)

console中打印出来的phone和email都是符合要求的,字符类型也都为string,不知道为什么传到body后就报错,折腾了很久,才在看request body的时候发现,真实的接口中phone和email都是带引号的,而以上脚本处理后传到body中,两个变量的值都没有引号,解决方法是:在body中给email和phone都加上引号

{
"base_info":{"type":1},
"contact_info":
    {"phone":"{{phone}}",
    "email":"{{email}}"
    },
"media_info":
    {"media_type":1}
}

很神奇的postman,变量可以直接用引号

相关文章

网友评论

      本文标题:"msg": "invalid character '+' lo

      本文链接:https://www.haomeiwen.com/subject/xjlvuhtx.html