2016-08-22 5 views
4

Я пытаюсь вызвать службу Java GET RESTful с адресом электронной почты от Ionic 2 (javascript). Он отлично работает, однако, когда я добавляю точку (например, .com) к адресу электронной почты, она теряет все символы из точки, когда она достигает услуги.Кодирование URI для службы RESTful

Как кодировать URI, чтобы отправить адрес электронной почты в службу поддержки?

Я использую:

'/list/email/' + encodeURIComponent(email)

но если адрес электронной почты: [email protected], он достигает службы как [email protected].

Я попытался:

'/list/email/' + email

'/list/email/' + encodeURI(email)

'/list/email/' + encodeURIComponent(email)

все дают одинаковый результат

Благодаря

+0

, в каком формате должен быть указан адрес электронной почты? –

+0

Доходит ли точка до сервера? –

+0

Точка не доходит до сервера. только символы перед точкой – Richard

ответ

0

Вы можете использовать:

/somepath/{variable:.+} 
+0

Привет Ван, спасибо за ответ, но я не понимаю. Я делаю это в функции javascript, и используемый вами синтаксис для меня не имеет смысла? – Richard

+0

Ok.i знаю. Спасибо. –

1

Вы можете попытаться закодировать свой адрес электронной почты для строки Base64.

var encodedData = window.btoa("[email protected]"); // 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)); 
+0

Спасибо, Лукас. Могу ли я декодировать строку в java на сервере? – Richard

+0

Конечно, вы можете декодировать строку на сервере, вопрос на который был дан ответ в этом потоке: http: //stackoverflow.com/questions/469695/decode-base64-data-in-java – gdyrrahitis

1

FIX проста. Просто добавьте '/' в конец URL-адреса

return this.http.get(this.BASE_URI + '/list/email/' + email + '/') 
+0

Ой, это было просто, а затем воображение –

Смежные вопросы