2017-05-17 14 views
0

javaでのAPI呼び出しの応答に問題があります。REST API Javaエンコーディングでのクライアントの応答の問題

サーバがテキストとして読めないコンテンツで応答し、私のリクエストのAPIレスポンスの下を参照してください:ここで

response screenshot

は私のコードです:

String urlt = "xxxxxx"; 
    URL url = new URL(urlt); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setRequestMethod("GET"); 
    conn.setRequestProperty("Connection", "Keep-Alive"); 
    conn.addRequestProperty("Accept-Encoding", "gzip"); 
    conn.addRequestProperty("User-Agent", "okhttp/3.4.1"); 

    if (conn.getResponseCode() != 200) { 
     throw new RuntimeException("Failed : HTTP error code : " 
       + conn.getResponseCode()); 
    } 

    BufferedReader br = new BufferedReader(new InputStreamReader(
     (conn.getInputStream()))); 

    String output; 
    System.out.println("Output from Server .... \n"); 
    while ((output = br.readLine()) != null) { 
     System.out.println(output); 
    } 

    conn.disconnect(); 

とレスポンスヘッダの例:

example of response headers

+1

どうしますか? – dat3450

+0

私は*問題はコンソールのガベージ出力であると推測しましたが、スクリーンショットの添付ファイルに表示されないように、あなた自身の言葉でより明確に説明できますか? –

答えて

0

は、次の行では、あなたが圧縮された応答を受け入れる準備ができているサーバーを教えて:

レスポンスヘッダーの写真のように
conn.addRequestProperty("Accept-Encoding", "gzip"); 

、サーバが義務付けし、あなたにgzipでエンコード(圧縮)コンテンツを提供します。

しかし、あなたはそれがただのテキストであると仮定して、応答を読むことに進みます。そう、それはあなたのコンソールにガベージとして印刷されます。

上記のヘッダーを削除するか、gzipで圧縮されたコンテンツの圧縮を解除する準備ができていますか。

+0

はい!私はヘッダーからgzip paramを削除しており、それは完全に動作しています。どうもありがとうございます。 –