2015-01-21 2 views
0

안녕하세요 다음 코드를 사용하여 아파치 HttpClient를를 사용하여 URL을 보내고 URL을 게시하려고하지만 그것은 예외를 보여주고있다 : java.net.URISyntaxException :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 

도와주세요 나, 내가 문제를하고있는 곳. 다음 코드는 내가 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); 
+0

edistrict && MSG? –

+0

예 그것을 인코딩하면 – ASADUL

답변

0

을 보내고 당신이해야 encode 그것에서 URL을 만들기 전에 MSG 문자열입니다.

String encodedMSG = URLEncoder.encode(MSG, "UTF-8") 
String url="http://192.168.2.144:8080/SDAX/homePage.do?actionFlag=edistrict&&MSG="+ encodedMSG; 

편집하는 것은

인코딩 한 후 데이터를 검색에 문제가되지 않습니다. 이 서블릿을 프로그램했다면 URLDecoder.decode() 메소드를 사용해야한다.

+0

을 제거했습니다. URL에서 해당 데이터를 가져 오는 데 문제가 있습니까? – ASADUL

+0

@ASADUL이 내 ansewer에 대한 편집을 확인합니다. – kaysush

+0

org.apache.http.conn.HttpHostConnectException : 예외 i 인코딩 후 얻으십시오 – ASADUL

0
  1. 수직 막대 (|)는 유효한 URI 문자가 아니기 때문에 URISyntaxException이 발생합니다. 솔루션 : kaysush가 제안한대로 URL을 인코딩/디코딩해야합니다. 자세한 내용은 다음 URL을 확인하십시오. Cannot process url with vertical/pipe bar
  2. 여기서 달성하고자하는 것을 설명하지 않았습니다. 나는 그것이 실수가 아니길 바란다. 하지만 질문에 따라 URL을 게시하려고하고 코드에서 HttpGet (url)을 사용하고 있습니다.
+0

나는 url에 매개 변수를 게시 할 수 있도록 해당 url에 매개 변수를 게시하려고합니다. – ASADUL