我正在尝试使用Ionic 2(javascript)的电子邮件地址调用java GET RESTful服务。它工作正常,但是当我向电子邮件地址添加一个点(例如.com)时,它会在到达服务时丢失点中的所有字符。
如何对URI进行编码以便向服务发送电子邮件地址?
我正在使用:
'/list/email/' + encodeURIComponent(email)
但如果电子邮件地址为:email@domain.com
,则会以email@domain
的形式到达服务。
我试过了:
'/list/email/' + email
'/list/email/' + encodeURI(email)
'/list/email/' + encodeURIComponent(email)
都给出相同的结果
由于
答案 0 :(得分:1)
您可以尝试将您的电子邮件地址编码为Base64字符串。
var encodedData = window.btoa("test@test.com"); // encode a string
var decodedData = window.atob(encodedData); // decode the string
如何解码服务器上的Base64字符串
byte[] valueDecoded= Base64.decodeBase64(bytesEncoded);
System.out.println("Decoded value is " + new String(valueDecoded));
答案 1 :(得分:1)
FIX很简单。只需在网址的末尾添加“/”
即可return this.http.get(this.BASE_URI + '/list/email/' + email + '/')
答案 2 :(得分:0)
您可以使用:
/somepath/{variable:.+}