程序使用的URL出现异常,请大家帮忙看一下
自己做的人人自动登录程序,并访问好友页面程序,这是程序:
public String notify(String url) {
HttpGet get = new HttpGet(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String txt = null;
String filepath = null;
try {
txt = httpClient.execute(get, responseHandler);
} catch (Client
ProtocolException e) {
e.printStackTrace();
} catch (
IOException e) {
e.printStackTrace();
}
finally {
get.abort();
}
return txt;
}
public static void main(String[] args) {
RenRenNotify notify = new RenRenNotify("123456789@123.com",
"123456789");//这个代码就不贴出来了,没有问题,可以登录上,已经测试过。
System.out.println(notify.notify("http://friend.renren.com/shareFriends?t=0.2351487116323684&p={%22init%22:true,%22uid%22:true,%22uhead%22:true,%22uname%22:true,%22group%22:true,%22net%22:true,%22param%22:{%22guest%22:292794698}}"));//这是出问题的URL,也是要访问的URL,换成其他的正规URL可以,就是这个不可以,程序报出异常
}
这是终端显示的异常:
Exception in thread "main"
java.lang.IllegalArgumentException at java.net.URI.create(URI.java:842)
at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69)
at Visitall.RenRenNotify.notify(RenRenNotify.java:153)
at Visitall.RenRenNotify.main(RenRenNotify.java:317)
Caused by: java.net.URISyntaxException: Illegal character in query at index 61: http://friend.renren.com/shareFriends?t=0.2351487116323684&p={"init":true,"uid":true,"uhead":true,"uname":true,"group":true,"net":true,"param":{"guest":292794698}}
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parseHierarchical(URI.java:3072)
at java.net.URI$Parser.parse(URI.java:3014)
at java.net.URI.<init>(URI.java:578)
at java.net.URI.create(URI.java:840)
... 3 more
在网上查,说自己这个URL不正规,但是把这条URL放到chrome浏览器,可以轻松打开,并访问,不知道这里存在URL字符无法识别的问题,请大家帮忙看一下,谢谢。
------解决方案--------------------
对了,URLEncode从?之后的参数开始,不要把域名和路径也放进去了。