2016-02-08 3 views
3

мне нужно сделать вызов службы, такие как это: http://myservice.com/path?var1=value1&var2=value2Url проблема кодирования с клиентом Джерси

Проблема у меня есть значение1 и значение2 заканчивает тем, что кодируется, и это делает вызов службы терпят неудачу. Например, значение1 является чем-то вроде «a = b & b = c; 2 & & =« ... содержит специальные символы, в основном.

Я угадываю, что это проблема для исправления службы - правильно обрабатывать декодированные кодированные символы, что я не думаю, что в данный момент это делается.

Вот пример того, как я делаю эти запросы:

WebTarget target = client.target("http://test.com") 
    .path("path1") 
    .queryParam("var1", var1); 
Builder builder = target.request(); 
... 

Что озадачивает меня, что если я сделать такой же запрос только с помощью Chrome, все работает. Таким образом, это заставляет меня поверить, что мне нужно каким-то образом использовать API-интерфейс Джерси «отключение» кодировки.

ответ

2

Только путь, который я нашел до сих пор, чтобы использовать «raw» Url - использовать URI. Так называют как этот

URI uri = URI.create("http://localhost/~Common~0#/edit?vadf&&sfs&&fdsfd=fs&fsd"); 
WebTarget target = client.target(uri); 

Вы получаете URL запроса

1 > GET http://localhost/~Common~0#/edit?vadf&&sfs&&fdsfd=fs&fsd 

Все остальное я попытался в результате при кодировании специальных символов.

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