2012-01-10 6 views
0

Google App Engine for JavaのリモートURLに接続するためにjava.netを使用しようとしています。私はレスポンスヘッダを取得したい接続した後java- java.netを使用してWebページを取得する - レスポンスヘッダーを正しく取得する方法

---

私は(いくつかのデータを接続して取得した後)、次のコードを使用しています - 「クライアント」はノートには、HttpURLConnectionのオブジェクトを表します。今

//now get HTTP Response Headers... 
for (Entry<String, List<String>> headernew : client.getHeaderFields().entrySet()) { 
System.out.println(headernew.getKey() + "=" + headernew.getValue()); 
String currName = headernew.getKey(); 
String currValue = headernew.getValue(); 

は、「headernew」ので、私は上記のコードで与えられたように、私は「currValue」を設定カントリストされた値で指定されています。

最初に 'headernew'を使用するコード行は、既存のSO回答から取得されます。

上記のコードはどこが間違っていますか?私は単に「headernew」は具体的にfollowing--

for (Entry<String, String> headernew : client.getHeaderFields().entrySet()) { 

として設定する必要があり、私は、キーと値のペアとしてdata--

MIMEタイプ、文字セット、レスポンスヘッダの次の部分を取得したい、と体の応答( 'byte []'として宣言)

答えて

1
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.util.List; 
import java.util.Map.Entry; 

public class Test { 

    public static void run() throws Throwable { 

    HttpURLConnection client = null; 
    OutputStreamWriter wr = null; 
    BufferedReader rd = null; 
    StringBuilder sb = null; 
    String line = null; 

    try { 

     URL url = new URL("http://www.google.com"); 
     client = (HttpURLConnection) url.openConnection(); 
     client.setRequestMethod("GET"); 
     client.setDoOutput(true); 
     client.setReadTimeout(10000); 

     client.connect(); 
     System.out.println(" *** headers ***"); 
     for (Entry<String, List<String>> headernew : client.getHeaderFields().entrySet()) { 
     System.out.println(headernew.getKey() + "=" + headernew.getValue()); 
     } 

     System.out.println(" \n\n*** Body ***"); 
     rd = new BufferedReader(new InputStreamReader(client.getInputStream())); 
     sb = new StringBuilder(); 

     while ((line = rd.readLine()) != null) { 
     sb.append(line + '\n'); 
     } 

     System.out.println("body=" + sb.toString()); 

    } finally { 
     client.disconnect(); 
     rd = null; 
     sb = null; 
     wr = null; 
    } 
    } 

    public static void main(String[] args) throws Throwable { 
    run(); 
    } 

} 
関連する問題