получить ошибку при оформлении запроса - PullRequest
0 голосов
/ 29 марта 2012

У меня в URI есть следующее

        uri.query = [id: "urn://salina/search/xplorer/XplorerApp",criteria:"{'includeNonGeotagged':'true','freetext':\{'text':" + "'" + "${searchString}" +"'}}",contentType:"rss20"]

Я получаю сообщение об ошибке: java.net.URISyntaxException: недопустимый символ в запросе с индексом 94: https://pix.us.baesystems.com/search/query?id=urn://salina/search/xplorer/XplorerApp&criteria={'includeNonGeotagged':'true','freetext':{'text':'test'}}&contentType=rss20

при сбросезначение uri.toString () и положить его в браузер, он работает нормально, поэтому я не могу понять, в чем здесь проблема ...

1 Ответ

0 голосов
/ 29 марта 2012

Вы получаете эту ошибку, потому что в вашем URI есть некодированные символы.Попробуйте их кодировать или сначала создайте URL-адрес из строки:

def url = "https://pix.us.baesystems.com/search/query?id=urn://salina/search/xplorer/XplorerApp&criteria={'includeNonGeotagged':'true','freetext':  {'text':'test'}}&contentType=rss20"
URL url = new URL(url);
URI uri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null);
println uri    

При этом будет напечатан правильный URI:

https://pix.us.baesystems.com/search/query?id=urn://salina/search/xplorer/XplorerApp&criteria=%7B'includeNonGeotagged':'true','freetext':%7B'text':'test'%7D%7D&contentType=rss20

Также см. этот ответ дляосновная идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...