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格式的解码。
输入数据示例
编码字符串:aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==编码字符串:eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ编码字符串:aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aD9wYXJhbT12YWx1ZQ==输出结果示例
解码后的URL:
https://www.example.com/path解码后的数据:
{"sub": "1234567890", "name": "John Doe", "iat":1516239022}解码后的URL:
https://www.example.com/path?param=value什么时候用?
Section titled “什么时候用?”1. URL解码 解码URL安全的Base64编码字符串为原始URL。在URL解码、数据还原、URL处理等场景中,将编码的URL还原为原始格式。适用于URL解码、数据还原、URL处理等场景。
2. JWT处理 解码JWT token中的URL安全编码数据。在JWT处理、令牌解析、身份验证等场景中,解码JWT中的数据。适用于JWT处理、令牌解析、身份验证等场景。
3. 网络传输 解码网络传输中的URL编码数据。在网络传输、数据接收、数据解析等场景中,解码传输的URL数据。适用于网络传输、数据接收、数据解析等场景。
4. 数据还原 将编码的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>Q1:输入有什么要求?
Section titled “Q1:输入有什么要求?”A: 输入必须是有效的URL安全Base64编码字符串,否则解码将失败。建议在解码前验证输入字符串的格式。
Q2:解码后会验证URL格式吗?
Section titled “Q2:解码后会验证URL格式吗?”A: 解码后的内容会自动验证是否为有效的URL格式。如果格式不正确,会返回相应的错误信息。
Q3:解码失败怎么办?
Section titled “Q3:解码失败怎么办?”A: 如果解码失败会抛出异常,建议使用Try-Catch进行错误处理。这样可以优雅地处理解码错误。
Q4:解码后URL格式会改变吗?
Section titled “Q4:解码后URL格式会改变吗?”A: 解码后的URL会保留原始格式,包括协议、域名、路径和参数。不会对URL进行任何修改。
- Base64DecodeTask -标准Base64字符串解码
- Base64EncodeTask -标准Base64字符串编码
- UrlFileBase64EncodeTask -URL文件Base64编码