2013-01-20 3 views
0

Java 7로 Java 데스크톱 응용 프로그램을 작성 중입니다. 응용 프로그램에서 POST를 사용하여 HTTP를 사용하여 서버에 데이터를 보내려고합니다. 로컬 호스트의 로컬 컴퓨터에서 서버가 실행 중입니다. 그러나 서버에 연결하려고하면 연결 재설정 (SocketTimeoutException)이 반환됩니다. 연결할 수 없으며 http://www.google.de과 같은 웹 페이지에 연결하려고 시도했지만 실패합니다. var 본문에는 올바른 형식의 POST 데이터가 들어 있습니다. (나는 또한 장애인 방화벽 연결을 시도했다) 내 코드 :URL 연결 HTTP POST 연결이 거부되었습니다.

body=body.substring(0,body.length()-2); 
HttpURLConnection connection = null; 
try { 
    if (revision){ //Connect to the revision server 
     this.urlRevision = new URL(this.settingsRevision.getAddress()); 
     connection = (HttpURLConnection) urlRevision.openConnection(); 
     connection.setRequestMethod("POST"); 
     connection.setConnectTimeout(10000); 
     connection.setReadTimeout(10000); 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 
     connection.setUseCaches(true); 
     connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     connection.setRequestProperty("Content-Length", String.valueOf(body.length())); 
     connection.connect(); 
     OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); 
     writer.write(body); 
     writer.flush(); 

     this.returnedData = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
     for(String line; (line = returnedData.readLine()) != null;){ 
      System.out.println(line); 
     } 
     writer.close(); 
     this.returnedData.close(); 
    } 
} catch (Exception e) { 
     this.exception=e; 
} 
+0

브라우저에서 http : // localhost를 시도하십시오. 다른 서버가 실행 중일 수 있습니다. 귀하의 서버는 무엇입니까? – TechSpellBound

+0

로컬 호스트가 내 브라우저에서 작동 중입니다. 내 로컬 xampp 서버 (아파치 서버)의 시작 페이지로갑니다. – user1995621

+1

Working with : System.setProperty ("java.net.preferIPv4Stack", "true"); – user1995621

답변

0

당신이 같은 연결을 닫습니다 시도해야합니다 :

} finally { 
    if(connection != null) { 
     connection.disconnect(); 
    } 
} 
+0

이것을 추가했지만 SocketTimeoutException이 다시 발생했습니다. – user1995621

+0

POST없이 데이터를 연결할 수 있습니까? – znurgl

0

이미 의견에 추가 :

System.setProperty("java.net.preferIPv4Stack" , "true"); 

이유 : Java는 내 컴퓨터에서 IPv6 기능을 사용하고 있지만 IPv4는 인터넷 연결 (내 컴퓨터 및 내 제공 업체 (T-Online))에서 사용됩니다.

관련 문제