Caused by java.net.URISyntaxException Illegal character in query at index 82 httpweblib.scutnc?
问题描述
使用HttpClient调用其他服务的时候,出现以下错误:
出错描述:使用HttpClient调用其他服务的时候报错 Caused by java.net.URISyntaxException Illegal character in query at index 82 httpweblib.scutnc?
出错原因:请求url中含有特殊字符,导致错误
问题处理
在请求其他服务的时候,我本来是下面的代码
String url = "";
HttpPost downPost = new HttpPost(url);
如果请求的url中不含有特殊字符的时候,其实这个是没有问题的,但是如果有特殊字符,那么不能直接用String代替URI来访问。必须采用%0xXX方式来替代特殊字符,这种方式就会报错了。所以只能先把String转成URL,再能过URL生成URI的方法来解决问题。代码如下:
String url = "";
URL postUrl = new URL(url);
URI uri = new URI(postUrl.getProtocol(), postUrl.getHost(), postUrl.getPath(), postUrl.getQuery(), null);
HttpPost downPost = new HttpPost(uri);
这样的话,就不会出现以上错误了!!