在WSO2 EI 6.3.0中将Base64 URL转换为Base64编码格式

时间:2019-10-09 06:28:49

标签: base64 gmail-api base64url

我从Gmail API获取了电子邮件附件(图像),该附件返回了 base64url编码的字符串。但是实际的编码方式与此Gmail api不同(“ /”替换为“ _”,“ +”替换为“-”等)。我想获取原始的base64编码字符串,而不是base64 url​​编码格式。我应该替换gmail api响应中的两个符号(“ /”,“ +”)还是任何人都可以帮助我实现这一目标?我正在尝试使用WSO2 EI 6.3.0。

 <call>
                    <endpoint>
                        <http method="get" uri-template="{+uri.var.gmail.apiUrl}/{+uri.var.gmail.apiVersion}/users/{+uri.var.gmail.userId}/messages/{+uri.var.id}/attachments/{+uri.var.attachmentId}"/>
                    </endpoint>
                </call>
 <property description="emailAttachment" expression="//data/text()" name="emailAttachment" scope="default" type="STRING"/>

例如,

来自Gmail API:,该调用之后,它将在“数据”键中返回以下值。

  

_9j_4AAQSkZJRgABAQAASABIAAD_4QBMRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAAqACAAQAAAABAAAPwKADAAQAAAABAAAL0AAAAAD _....

原始Base64编码值:

  

/ 9j / 4AAQSkZJRgABAQAASABIAAD / 4QBMRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAAqACAAQAAAABAAAPwKADAAQAAAABAAAL0AAAAAD /....

1 个答案:

答案 0 :(得分:0)

在Javascript中,最简单的方法是使用replace()方法:

newData=data.replace(/-/g, '+').replace(/_/g, '/')