在Java中,我需要使用HTTP Post将请求发送到服务器,但是如果URL的参数中包含一些特殊字符,它将在Exception下面抛出
java.lang.IllegalArgumentException:URLDecoder:转义(%)模式中的非法十六进制字符-对于输入字符串:“&’”
发送数据的代码
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ああ#$%&’(<>?/。,あああああ],它将抛出异常。我想知道是否有人可以帮助我进行编码的提示并解码特殊字符?
提前非常感谢您。
不幸的是,URL编码器无法解决您的问题。我遇到了这个问题,并使用了自定义实用程序。我记得我是从谷歌搜索获得的;)。
http://www.javapractices.com/topic/TopicAction.do?Id=96
相关网站:http://nubix.ca/blog/we-have-a-drone-and-were-prepared-to-shot/
问题内容: 我得到了一个像这样的字符串 我该如何编写Java代码来解码编码字符,例如 在字符串中。是否有任何现有的类/方法可以对其进行解码? 谢谢。 问题答案: 要取消转义HTML / XML实体,请使用Apache Commons Lang 或homegrow one 。
主要内容:URL基本组成,哪些字符需要编码,Python实现编码与解码,Python 的标准库urllib.parse模块中提供了用来编码和解码的方法,分别是 urlencode() 与 unquote() 方法。当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。 安全字符,指的是没有特殊用途或者特殊意义的字符。 URL基本组成 URL 是由一些简单的组件构成,比如协议、域名、端
问题内容: 我需要使用Java代码对URL进行编码,以避免使用特殊字符,例如空格和%和&… etc 问题答案: URL的构造很棘手,因为URL的不同部分对允许使用什么字符有不同的规则:例如,加号保留在URL的查询部分中,因为它表示空格,但在URL的路径部分中保留了一个空格。加号没有特殊含义,空格编码为“%20”。 RFC2396解释(在2.4.2节中),完整的URL始终采用其编码形式:您获取各个组
问题内容: 编码URL字符串以使其符合rfc2396并解码与rfc2396兼容的字符串(例如,将%20替换为空格字符)的最佳方法是什么? 编辑:URLEncoder的和URLDecoder类做 不 编码/解码RFC2396兼容网址,它们编码到一个MIME类型application / x-WWW窗体-urlencoded的其用于编码HTML表单参数数据。 问题答案: 使用URI类,如下所示: 或者
出于测试的目的:当它解析数据时,我将一些数据输出到一个呈现完美的浏览器。。 然后我试着用php将它写到一个文件中,如下所示- 和 和