2012-07-02 3 views
5

Я использую вызов GET REST в java с использованием заданного кода, но получаю код ошибки: 404 i.e Не найдено. Но когда я использую тот же URL-адрес в браузере, я получаю вывод, и он отлично работает. Я новичок в JAVA. Может быть, я неправильно передаю параметры запроса, но я не получаю его. Я работаю в NETBEANS 7.1.2. Пожалуйста помоги.как передать параметры запроса в java с клиентом Http

import java.io.IOException; 
    import java.io.OutputStreamWriter; 
    import java.net.HttpURLConnection; 
    import java.net.URL; 
     public class Test { 
      private static String ENDPOINT ="http://wisekar.iitd.ernet.in/active/api_resources.php/method/mynode?"; 
      public static void main(String[] args) throws IOException 
      { 
       URL url = new URL(ENDPOINT + "key=" + "mykey" ); 
       HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
       httpCon.setDoOutput(true); 
       httpCon.setRequestMethod("GET"); 
      OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream()); 
      System.out.println(httpCon.getResponseCode()); 
      System.out.println(httpCon.getResponseMessage()); 
      out.close(); 
      } 
    } 

здесь mykey - это ключ, предоставленный мне сайтом.

Я также хочу напечатать ответное сообщение в окне вывода или консоли. Поскольку я хочу сохранить его в будущем для некоторого извлечения. Пожалуйста, помогите.

ответ

5

Вот ваш код .. Используйте его. Он дает ответ как 401-Unauthorised для меня и тот же ответ на URL-адрес браузера, может ли это вызвать VPN некоторые другие проблемы. ЕСЛИ вы используете

private static String ENDPOINT ="http://google.com"; 

Это даст вам 200-OK.

import java.io.IOException; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLEncoder; 

     public class Test { 
      private static String ENDPOINT ="http://wisekar.iitd.ernet.in/active/api_resources.php/method/mynode"; 
      public static void main(String[] args) throws IOException 
      { 
       String url = ENDPOINT; 
       String charset = "UTF-8"; 
       String param1 = "mykey"; 

       String query = String.format("key=%s", 
        URLEncoder.encode(param1, charset)); 
       java.net.URLConnection connection = new URL(url + "?" + query).openConnection(); 
       connection.setRequestProperty("Accept-Charset", charset); 
       if (connection instanceof HttpURLConnection) 
       { 
       HttpURLConnection httpConnection = (HttpURLConnection) connection; 
       System.out.println(httpConnection.getResponseCode()); 
       System.out.println(httpConnection.getResponseMessage()); 
       } 
       else 
       { 
       System.err.println ("error!"); 
       } 
      } 
    } 
+0

Привет, я читал о веб-сервисах (почте и получаю) и получил хорошие знания об этом. И я использовал инструмент soapUI для вызова службы GET, что довольно просто. SInce это инструмент, который отлично работает без слишком большого количества написания кода. выглядя выше кода. Я думаю, что могу использовать HTTPClient и HTTPUrlconnection CLASSES и написать код Java для замены входов при необходимости и совершать вызовы GET и POST. Пожалуйста, дайте мне знать, хорошо ли это делать, если я не хочу использовать инструмент SOAPUI. – MKod

+0

да, вы можете использовать его. Его все о частоте вызова и нагрузке на данные. – manurajhada

+0

Спасибо за быстрый ответ; не могли бы вы рассказать о частоте звонков? – MKod

Смежные вопросы