2012-07-02 78 views
5

我正在使用給定的代碼在java中使用GET REST調用,但我得到一個錯誤代碼:404(即未找到)。但是當我在瀏覽器中使用相同的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

嗨,我讀到的WebServices(POST和GET)的得到了一些很好的瞭解就可以了。我已經使用soapUI工具來進行GET服務調用,這很容易。即使它是一個工具,它工作正常,沒有太多的代碼寫作。看上面的代碼我想我可以使用HTTPClient和HTTPUrlconnection CLASSES並編寫java代碼以在必要時替換輸入並進行一些GET和POST調用。如果我不想使用SOAPUI工具,請告訴我是否是好事。 – MKod

+0

是的,你可以使用它..它的所有關於通話頻率和數據加載。 – manurajhada

+0

感謝您的快速回復;你能否詳細說明通話頻率? – MKod

相關問題