PostMan调用gRPC服务前:读取本地图片转Base64及传参方法
在PostMan中实现gRPC请求前自动处理本地图片为Base64参数
步骤1:编写Pre-request Script脚本
在你的gRPC请求的Pre-request Script标签页中,填入以下代码:
// 替换为你的本地图片绝对路径,注意格式: // Windows: file:///C:/Users/xxx/Desktop/test.jpg // Mac/Linux: file:///Users/xxx/Desktop/test.jpg const imageFilePath = "file:///你的图片绝对路径"; pm.sendRequest(imageFilePath, { encoding: "base64" }, (err, res) => { if (err) { console.error("读取图片文件失败:", err); return; } // 获取Base64编码字符串 const base64Str = res.text(); // 计算原始图片字节长度(Base64字符串长度不等于原始字节长度,需解码后计算) const imageBytesLength = atob(base64Str).length; // 将值存入环境变量,供gRPC消息调用 pm.environment.set("imageBase64", base64Str); pm.environment.set("imageLength", imageBytesLength); });
步骤2:在gRPC消息中引用变量
切换到Message标签页,按照你的gRPC proto定义,在对应参数位置用PostMan变量语法引用值:
{ "image_base64": "{{imageBase64}}", "image_length": {{imageLength}} }
提示:如果
image_length是数字类型,不要加引号;如果是字符串类型则需要加引号,完全匹配你的proto字段定义即可。
注意事项
- 必须使用绝对路径,且格式以
file:///开头,否则PostMan无法读取本地文件 - 网页版PostMan受浏览器权限限制,可能无法读取本地文件,建议使用桌面端PostMan
- 不要直接用Base64字符串的长度作为
image_length,因为Base64是3字节转4字符的编码,解码后计算的长度才是原始图片的真实字节数
内容的提问来源于stack exchange,提问作者yann
相关产品推荐
相关产品推荐

