В Java мне нужно использовать HTTP Post для отправки запроса на сервер, но если в параметре URL содержится какой-то специальный символ, он выдает ниже Исключение
java.lang.IllegalArgumentException:
URLDecoder: недопустимые шестнадцатеричные символы в
escape (%) pattern - Для входной строки:
"&"
Код для отправки данных
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
String sessionId = RequestUtil.getRequest().getSession().getId();
String data = arg.getData().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(param1, data));
params.add(new BasicNameValuePair(param2, sessionId));
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = (HttpResponse) httpclient.execute(httpPost);
А на стороне сервера я использую приведенный ниже код для чтения информации
String data = request.getParameter(param1);
if (data != null) {
actionArg = new ChannelArg(URLDecoder.decode(data, "UTF-8"));
}
Код работает правильно, но если я введу какой-то специальный символ, например [a あ あ # $% & '(<>? /., あ あ あ あ あ], он выдаст исключение. способен кодировать и декодировать специальные символы?
Заранее большое спасибо.