2016-12-08 7 views
1

Я написал простое приложение HTTP HTTP Client, которое должно подключиться к внешнему ресурсу с моей машины, используя ngrok. Образец кода:Как подключить простое приложение HTTP HTTP-клиента к веб-ресурсу с помощью Ngrok?

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. Итак, как мне настроить ngrok для передачи HTTP-запросов моего приложения?

Я также попробовал запустить приложение за сервером Tomcat, установив правильный порт с обеих сторон (tomcat и ngrok) - связь пока не установлена.

ответ

0

Я не уверен, что вы хотите, но вы просто планируете сделать запрос клиента на удаленный сервер, тогда вам не нужно ngrok. Ngrok помогает настроить веб-сервер на локальном хосте, доступном для внешнего мира, потому что по умолчанию firwalls не разрешает подключения из Интернета в localhost.

Из вашего кода я вижу, что вы пытаетесь отправить запрос на определенный номер LINK. Вы пробовали пинговать LINK, чтобы узнать, действительно ли он принимает соединения (живые)? Ваш компьютер подключен к Интернету при запуске программы?