当我尝试发布URL时出现java.net.URISyntaxException
Hi-am使用以下代码使用apache HttpClient发送url,但出现异常:java.net.URISyntaxException:当我尝试发布URL时出现java.net.URISyntaxException,java,apache,url,Java,Apache,Url,Hi-am使用以下代码使用apache HttpClient发送url,但出现异常:java.net.URISyntaxException: Illegal character in query at index 70: http://192.155.2.144:8080/SDAX/homePage.do?actionFlag=istrict&&MSG=1|Bdrtfggf|254td|return|null|null|null 请帮我解决这个问题的地方。下面的代码我正在发送一
Illegal character in query at index 70: http://192.155.2.144:8080/SDAX/homePage.do?actionFlag=istrict&&MSG=1|Bdrtfggf|254td|return|null|null|null
请帮我解决这个问题的地方。下面的代码我正在发送一个URL
String MSG="1|Bdrtfggf|254td|return|null|null|null" ;
String url="http://192.168.2.144:8080/SDAX/homePage.do?actionFlag=edistrict&&MSG="+MSG;
System.out.println("Url is"+url);
//String url = "http://192.168.0.6:8084/NRC_NEW_SEARCH/getVillageList.req?dist_id=1";
//String url="http://192.168.0.85:8080/poly/web/";
//FacesContext.getCurrentInstance().getExternalContext().redirect(url);
//ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
//context..redirect(url);
HttpRequestBase request = new HttpGet(url);
/*HttpParams params = new BasicHttpParams();
params.setParameter("dist_id", "1");
request.setParams(params);*/
HttpClient httpClient = new DefaultHttpClient();
httpClient.execute(request);
在创建
URL
之前,应该对MSG
字符串进行encode
编码
String encodedMSG = URLEncoder.encode(MSG, "UTF-8")
String url="http://192.168.2.144:8080/SDAX/homePage.do?actionFlag=edistrict&&MSG="+ encodedMSG;
编辑
编码后检索数据不会有任何问题。如果您已经编写了这个servlethomePage.do
,那么您应该在其中使用urldecode.decode()
方法
是edistrict&&MSG吗?是的,我已经从中删除了一个&如果我对它进行编码,那么从URLorg.apache.http.conn.HttpHostConnectException获取该数据是否有任何问题:我正在获取的异常encode@ASADUL确保您使用的是有效的主机/ip/文件路径?@ASADUL它不是有效的ip。我试图
telnet
it,但无法连接。请重新检查地址。我只想将参数发布到该url,以便我们可以从该url获取参数