2012-07-02 3 views
5

私は指定されたコードを使用してJavaでGET REST呼び出しを使用していますが、エラーコード:404が見つかりません。しかし、私はブラウザで同じURLを使用しているときに私は出力を取得して、それは正常に動作しています.JAVAを初めて。 クエリパラメータを誤って渡している可能性がありますが、取得できません。 私はNETBEANS 7.1.2で作業しています。助けてください。httpクライアントでjavaでクエリパラメータを渡す方法

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(投稿と取得)について読んで、それについていくつかの良い知識を得ました。私はsoapUIツールをGETサービスコールに使用していますが、これはかなり簡単です。それはあまりにも多くのコードを書くことなくうまく動作するツールです。上記のコードを見て、私はHTTPClientとHTTPUrlconnectionクラスを使用し、必要に応じて入力を置き換え、いくつかのGETとPOST呼び出しを行うためのJavaコードを書くことができると思います。私がSOAPUIツールを使いたくない場合、それが良いことであるかどうか教えてください。 – MKod

+0

はい、それを使用することができます..それはすべての呼び出し頻度とデータの負荷についてです。 – manurajhada

+0

すばやい返信ありがとうございます。呼び出し頻度について詳しく教えてください。 – MKod

関連する問題