跳转到内容

UrlBase64DecodeTask - URL Base64解码

将URL安全的Base64编码字符串解码为原始URL。使用URL安全的Base64解码器,将编码的字符串转换回原始的URL格式。

指令标识:UrlBase64DecodeTask
指令类型:工具类指令
指令描述:将URL安全的Base64编码字符串解码为原始URL,支持URL安全Base64编码格式

参数名类型必填默认值说明
urlBase64StringString-URL安全的Base64编码字符串
toolIdString-节点唯一标识符(21位随机字符串)
outKeyString-输出变量名(格式:toolId.自定义字段名)
sendMsgFlagBooleanfalse是否发送消息通知

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==

输出结果示例

解码后的URL:

https://www.example.com/path

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>

A: 输入必须是有效的URL安全Base64编码字符串,否则解码将失败。建议在解码前验证输入字符串的格式。

A: 解码后的内容会自动验证是否为有效的URL格式。如果格式不正确,会返回相应的错误信息。

A: 如果解码失败会抛出异常,建议使用Try-Catch进行错误处理。这样可以优雅地处理解码错误。

A: 解码后的URL会保留原始格式,包括协议、域名、路径和参数。不会对URL进行任何修改。