2016-12-08 2 views
1

ngrok을 사용하여 내 컴퓨터의 외부 리소스에 연결해야하는 간단한 Java HTTP 클라이언트 응용 프로그램을 작성했습니다. 샘플 코드는 다음과 같습니다Ngrok를 사용하여 간단한 Java HTTP 클라이언트 응용 프로그램을 웹 리소스에 어떻게 연결합니까?

public void sendMessage(String number, String message) { 

    try { 

     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(
       LINK); 
     httpPost.addHeader("content-type", "application/json"); 

     List<NameValuePair> nvps = new ArrayList<>(); 
     nvps.add(new BasicNameValuePair("Authorization", getBasicAuth())); 
     nvps.add(new BasicNameValuePair("LOGIN", LOGIN)); 
     nvps.add(new BasicNameValuePair("PASSWORD", PASSWORD)); 
     nvps.add(new BasicNameValuePair("Message", "Hello, World!")); 
     httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 

     HttpResponse response = httpClient.execute(httpPost); 

     if (response.getStatusLine().getStatusCode() != 201) { 
      throw new RuntimeException("Failed : HTTP error code : " 
        + response.getStatusLine().getStatusCode()); 
     } 

     BufferedReader br = new BufferedReader(
       new InputStreamReader((response.getEntity().getContent()))); 

     String output; 
     System.out.println("Output from Server .... \n"); 
     while ((output = br.readLine()) != null) { 
      System.out.println(output); 
     } 

     httpClient.getConnectionManager().shutdown(); 

    } catch (MalformedURLException e) { 

     e.printStackTrace(); 

    } catch (IOException e) { 

     e.printStackTrace(); 

    } 
} 

ngrok 문서 나 로컬 웹 서버에 포트를 제공해야 알 수 있습니다. 하지만 제 경우에는 Tomcat과 같이 구성되지 않은 간단한 단일 클래스 응용 프로그램입니다. 그렇다면 어떻게하면 내 앱의 HTTP 요청을 전송하도록 ngrok을 구성해야합니까?

Tomcat 서버 뒤에 내 응용 프로그램을 실행하여 양쪽 포트 (tomcat 및 ngrok)에 올바른 포트를 설정해 보았습니다. 아직 통신이 설정되지 않았습니다.

답변

0

당신이 원하는 것을 정말로 모르겠지만 원격 서버에 클라이언트 요청을 할 계획이라면 ngrok이 필요하지 않습니다. Ngrok는 기본적으로 firwall이 인터넷에서 localhost로 연결을 허용하지 않기 때문에 바깥 세상에서 사용할 수있는 로컬 호스트에 웹 서버를 설치하도록 도와줍니다.

코드에서 특정 LINK으로 요청을 보내려고합니다. 실제로 연결을 수락하는지 확인하기 위해 링크 핑 (ping)을 시도 했습니까? 프로그램을 실행할 때 컴퓨터가 인터넷에 연결되어 있습니까?

관련 문제