Postman请求头包含日文字符时无法发送请求该如何解决?
问题原因
HTTP 1.1协议规定请求头默认仅支持ISO-8859-1字符集,你在Dropbox-API-Arg请求头中直接传入了日文等非ASCII字符,不符合协议规范,因此触发Postman警告和接口报错。
解决方案
方案1:对请求头值做URL百分号编码(官方推荐)
Dropbox官方明确要求,Dropbox-API-Arg头中存在非ASCII字符时,需要先将JSON参数转为UTF-8编码,再做URL百分号编码后再传入。
你可以直接在Postman的「Pre-request Script(预请求脚本)」中添加以下代码自动完成编码,无需手动处理:
const dropboxApiArg = JSON.stringify({ "path": "/テスト自動化/test.xlsx" }); pm.request.headers.upsert({ key: "Dropbox-API-Arg", value: encodeURIComponent(dropboxApiArg) });
添加完成后删除原来手动填写的Dropbox-API-Arg请求头即可,发送请求时脚本会自动生成符合规范的头字段。
方案2:改用请求体传参
Dropbox绝大多数接口都支持两种参数传递方式,你可以选择不在请求头中传参,而是在POST请求的form-data表单中新增arg字段,将完整的JSON参数作为arg的值传入,请求体本身支持UTF-8全字符集,不会出现字符非法问题。
方案3:手动编码参数
如果你需要手动构造请求头,可以先将JSON字符串做UTF-8格式的百分号转义,再将转义后的结果填写到Dropbox-API-Arg的值中即可。
内容的提问来源于stack exchange,提问作者LDT
相关产品推荐
相关产品推荐

