UrlBase64DecodeTask - URL Base64解码
将URL安全的Base64编码字符串解码为原始URL。使用URL安全的Base64解码器,将编码的字符串转换回原始的URL格式。
指令标识:UrlBase64DecodeTask
指令类型:工具类指令
指令描述:将URL安全的Base64编码字符串解码为原始URL,支持URL安全Base64编码格式
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| urlBase64String | String | 是 | - | URL安全的Base64编码字符串 |
| toolId | String | 是 | - | 节点唯一标识符(21位随机字符串) |
| outKey | String | 是 | - | 输出变量名(格式:toolId.自定义字段名) |
| sendMsgFlag | Boolean | 否 | false | 是否发送消息通知 |
outKey使用规则
Section titled “outKey使用规则”outKey格式要求:toolId.自定义字段名
示例:
<UrlBase64DecodeTask urlBase64String="aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" toolId="url_decode_001" outKey="url_decode_001.decodedUrl" sendMsgFlag="false"/>
<!--引用解码结果 --><Message message="解码后的URL:${url_decode_001.decodedUrl}" toolId="msg_001" sendMsgFlag="true"/>输出内容:直接返回解码后的字符串,通过 ${toolId.自定义字段名}引用。
示例:将URL安全的Base64编码字符串解码为原始URL,支持各种URL格式的解码。
输入数据示例
Section titled “输入数据示例”编码字符串:aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==编码字符串:eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ编码字符串:aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aD9wYXJhbT12YWx1ZQ==输出结果示例
Section titled “输出结果示例”解码后的URL:
https://www.example.com/path解码后的数据:
{"sub": "1234567890", "name": "John Doe", "iat":1516239022}解码后的URL:
https://www.example.com/path?param=value什么时候用?
Section titled “什么时候用?”- URL解码:解码URL安全的Base64编码字符串为原始URL
- JWT处理:解码JWT token中的URL安全编码数据
- 网络传输:解码网络传输中的URL编码数据
- 数据还原:将编码的URL参数还原为原始URL
- 安全验证:解码并验证URL的安全性和有效性
基本URL解码:
<UrlBase64DecodeTask urlBase64String="aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" toolId="url_decode_quick_001" outKey="url_decode_quick_001.decodedUrl" sendMsgFlag="false"/>
<Message message="解码后的URL:${url_decode_quick_001.decodedUrl}" outKey="msg1" stream="false"/>解码JWT中的URL数据:
<DeclareVariable inputList='[ {"name": "jwtPayload", "type": "string", "label": "JWT载荷", "description": "Base64编码的JWT数据", "value": "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ"} ]' toolId="declare_jwt_002" outKey="customVariables" sendMsgFlag="false"/>
<UrlBase64DecodeTask urlBase64String="${customVariables.jwtPayload}" toolId="url_decode_jwt_002" outKey="url_decode_jwt_002.decodedPayload" sendMsgFlag="false"/>
<Message message="JWT载荷:${url_decode_jwt_002.decodedPayload}" toolId="msg_jwt_002" sendMsgFlag="true"/>批量解码URL列表:
<DeclareVariable inputList='[ {"name": "encodedUrls", "type": "array", "label": "编码URL列表", "description": "Base64编码的URL数组", "value": ["aHR0cHM6Ly9hcGkxLmV4YW1wbGUuY29t", "aHR0cHM6Ly9hcGkyLmV4YW1wbGUuY29t", "aHR0cHM6Ly9hcGkzLmV4YW1wbGUuY29t"]} ]' toolId="declare_batch_003" outKey="customVariables" sendMsgFlag="false"/>
<for param="element" list="${customVariables.encodedUrls}" outKey="for_decode_batch_003" toolId="for_decode_batch_003" sendMsgFlag="false"> <UrlBase64DecodeTask urlBase64String="${for_decode_batch_003.element}" toolId="url_decode_item_003" outKey="url_decode_item_003.decodedUrl" sendMsgFlag="false"/>
<Message message="解码URL:${url_decode_item_003.decodedUrl}" toolId="msg_item_003" sendMsgFlag="true"/></for>条件化解码:
<DeclareVariable inputList='[ {"name": "encodedData", "type": "string", "label": "编码数据", "description": "Base64编码的数据", "value": "aHR0cHM6Ly9zZWN1cmUuZXhhbXBsZS5jb20vZGF0YQ=="}, {"name": "shouldDecode", "type": "boolean", "label": "是否解码", "description": "是否执行解码操作", "value": true} ]' toolId="declare_condition_004" outKey="customVariables" sendMsgFlag="false"/>
<if condition="${customVariables.shouldDecode} = true" toolId="if_decode_004" sendMsgFlag="false"> <UrlBase64DecodeTask urlBase64String="${customVariables.encodedData}" toolId="url_decode_cond_004" outKey="url_decode_cond_004.decodedData" sendMsgFlag="false"/> <Message message="解码结果:${url_decode_cond_004.decodedData}" toolId="msg_success_004" sendMsgFlag="true"/></if><else toolId="else_decode_004" sendMsgFlag="false"> <Message message="跳过解码,原始数据:${customVariables.encodedData}" toolId="msg_skip_004" sendMsgFlag="true"/></else>解码并验证URL格式:
<UrlBase64DecodeTask urlBase64String="aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aD9wYXJhbT12YWx1ZQ==" toolId="url_decode_verify_005" outKey="url_decode_verify_005.decodedUrl" sendMsgFlag="false"/>
<if condition="${url_decode_verify_005.decodedUrl} startWith https://" toolId="if_https_005" sendMsgFlag="false"> <Message message="安全的HTTPS URL:${url_decode_verify_005.decodedUrl}" toolId="msg_secure_005" sendMsgFlag="true"/></if><else toolId="else_https_005" sendMsgFlag="false"> <Message message="非HTTPS URL,请谨慎访问:${url_decode_verify_005.decodedUrl}" toolId="msg_insecure_005" sendMsgFlag="true"/></else>处理解码错误:
<TryCatchTask toolId="try_catch_006" sendMsgFlag="false"> <Try toolId="try_006" sendMsgFlag="false"> <UrlBase64DecodeTask urlBase64String="${input.base64Data}" toolId="url_decode_error_006" outKey="url_decode_error_006.decodedUrl" sendMsgFlag="false"/> <Message message="解码成功:${url_decode_error_006.decodedUrl}" toolId="msg_success_006" sendMsgFlag="true"/> </Try> <Catch toolId="catch_006" sendMsgFlag="false"> <Message message="解码失败,请检查Base64字符串格式" toolId="msg_error_006" sendMsgFlag="true"/> </Catch></TryCatchTask>1.输入必须是有效的URL安全Base64编码字符串 2.解码后的内容会自动验证是否为有效的URL格式 3.如果解码失败会抛出异常,建议使用TryCatchTask进行错误处理 4.解码后的URL会保留原始格式,包括协议、域名、路径和参数 5.支持解码包含特殊字符的URL,如中文、空格等 6.必须提供有效的toolId和符合格式要求的outKey
- 输入验证:在解码前验证输入字符串的格式
- 错误处理:使用TryCatchTask处理可能的解码错误
- URL验证:解码后检查URL的有效性和安全性
- 编码一致性:确保使用URL安全的Base64编码(使用
-和_替代+和/) - 性能考虑:对于大量URL解码,考虑批量处理
- Base64DecodeTask -标准Base64字符串解码
- Base64EncodeTask -标准Base64字符串编码
- UrlFileBase64EncodeTask -URL文件Base64编码