2014-09-19 3 views
0

그래서 브라우저에이 링크를 입력하고 Enter 키를 누르면 활성화됩니다. 나는 자바를 통해 똑같이하고 싶다. URL에서 어떤 종류의 응답도 필요하지 않습니다. 브라우저에서 URL을 입력하는 것과 똑같이해야합니다. 현재 내 코드는 오류를 던지지 않지만 활성화가 일어나지 않아 작동하지 않는다고 생각합니다. 내 코드 :자바에 URL 입력 시뮬레이션

 public static void enableMachine(String dns){ 
    try { 
      String req= "http://"+dns+"/username?username=sputtasw"; 
      URL url = new URL(req); 
      URLConnection connection = url.openConnection(); 
      connection.connect(); 
      /*BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); 
      String strTemp = ""; 
      while (null != (strTemp = br.readLine())) { 
       System.out.println(strTemp); 
      }*/ 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
} 

문제점 :

+0

링크가 일부 리디렉션을 유발할 수 있으므로 http://htmlunit.sourceforge.net/과 같은 헤드리스 브라우저를 사용하는 것이 좋습니다. – Leo

+0

"활성화가 발생 했음"이란 무엇을 의미합니까? 정확히 무슨 뜻이야? 브라우저에서 어떤 일이 발생합니까? 또는 URL 뒤에있는 서버에서? – f1sh

+0

예, 브라우저에서 URL을 누르고 Enter 키를 누르면 원격 서버에 신호를 보내고 활성화가 성공적으로 표시되는 페이지가 표시됩니다. –

답변

1

URLConnection을 사용하여 연결하려는 경우 connect를 사용하여 연결을 여는 것만으로는 충분하지 않습니다. 예를 들면 다음과 같이 보내야합니다. HTTP 요청 등.

Apache HttpComponents (http://hc.apache.org/)와 같은 HTTP 클라이언트를 사용하는 것이 더 쉬울 것이라고 생각합니다. HTTP 클라이언트로 GET 요청을하면 브라우저로 페이지를 방문하는 것과 동일합니다 (해당 클라이언트는 대개 리디렉션 등도 지원합니다).

0

당신은 일을 할 HttpUrlConnectionClass을 사용할 수 있습니다 :

URL url = new URL("http://my.url.com"); 
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
httpCon.setRequestProperty("Content-Type", "application/json"); 
httpCon.setDoOutput(true); 
httpCon.setRequestMethod("POST"); 

String params = "foo=42&bar=buzz"; 

DataOutputStream wr = new DataOutputStream(httpCon.getOutputStream()); 
wr.writeBytes(params); 
wr.flush(); 
wr.close(); 

httpCon.connect(); 

int responseCode = httpCon.getResponseCode(); 

당신은뿐만 아니라 "GET"요청 방법을 사용하고 단지 URL에 매개 변수를 추가 할 수 있습니다.

관련 문제