2016-05-24 3 views
0

非常にうまく動作していたコードに問題があります。 私はアンドロイドでWebサーバーからデータを取得するために、非同期タスクを実行しています、問題はコントロールが非同期タスク内のreadLineに来るとき、私は例外を取得していますということですが、詳細は以下に提供されていますAndroid:java.io.IOException:java.util.zip.DataFormatException:サーバーからデータを取得中に距離が長すぎます

BufferedReader reader = new BufferedReader(new 
         InputStreamReader(conn.getInputStream())); 
       StringBuffer sb = new StringBuffer(""); 
       String line = ""; 

       while ((line = reader.readLine()) != null) { 
        sb.append(line); 
        break; 
       } 

スタックトレースを:

05-24 21:10:41.261 11232-11476/com.fiesta W/System.err: java.io.IOException: java.util.zip.DataFormatException: invalid distance too far back 
05-24 21:10:41.263 11232-11476/com.fiesta W/System.err:  at com.android.okhttp.okio.InflaterSource.read(InflaterSource.java:84) 
05-24 21:10:41.263 11232-11476/com.fiesta W/System.err:  at com.android.okhttp.okio.GzipSource.read(GzipSource.java:80) 
05-24 21:10:41.264 11232-11476/com.fiesta W/System.err:  at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:349) 
05-24 21:10:41.265 11232-11476/com.fiesta W/System.err:  at java.io.InputStreamReader.read(InputStreamReader.java:233) 
05-24 21:10:41.266 11232-11476/com.fiesta W/System.err:  at java.io.BufferedReader.fillBuf(BufferedReader.java:145) 
05-24 21:10:41.268 11232-11476/com.fiesta W/System.err:  at java.io.BufferedReader.readLine(BufferedReader.java:397) 
05-24 21:10:41.270 11232-11476/com.fiesta W/System.err:  at com.fiesta.SearchPeople$1GetPeople.doInBackground(SearchPeople.java:131) 
05-24 21:10:41.271 11232-11476/com.fiesta W/System.err:  at com.fiesta.SearchPeople$1GetPeople.doInBackground(SearchPeople.java:96) 
05-24 21:10:41.272 11232-11476/com.fiesta W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
05-24 21:10:41.273 11232-11476/com.fiesta W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
05-24 21:10:41.275 11232-11476/com.fiesta W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
05-24 21:10:41.276 11232-11476/com.fiesta W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
05-24 21:10:41.277 11232-11476/com.fiesta W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
05-24 21:10:41.279 11232-11476/com.fiesta W/System.err:  at java.lang.Thread.run(Thread.java:818) 
05-24 21:10:41.280 11232-11476/com.fiesta W/System.err: Caused by: java.util.zip.DataFormatException: invalid distance too far back 
05-24 21:10:41.282 11232-11476/com.fiesta W/System.err:  at java.util.zip.Inflater.inflateImpl(Native Method) 
05-24 21:10:41.283 11232-11476/com.fiesta W/System.err:  at java.util.zip.Inflater.inflate(Inflater.java:237) 
05-24 21:10:41.284 11232-11476/com.fiesta W/System.err:  at com.android.okhttp.okio.InflaterSource.read(InflaterSource.java:67) 
05-24 21:10:41.285 11232-11476/com.fiesta W/System.err:  ... 13 more 

私は、PHPのデータが破損していないことを知っています。私はそれがオブジェクトを正しく返すことがわかります。

<?php 
include 'includes/conn.php'; 
ini_set('display_errors', 1); 
$u_id = $_GET['uid']; 
$s = $_GET['s']; 
$result = array(); 
$res = mysqli_query($con,"select u_id, first_name, last_name, user_profile_image from main_user_login where concat(first_name, ' ', last_name) like '%$s%'"); 

while ($row = mysqli_fetch_array($res)) { 
    array_push($result, 
    array('u_id'=>$row['u_id'], 
    'first_name'=>$row['first_name'], 
    'last_name'=>$row['last_name'], 
    'user_profile_image'=>$row['user_profile_image'] 
    )); 
} 
echo json_encode(array("result"=>$result)); 
mysqli_close($con); 

?>

この問題は突然来て、私はそこに行って何のコードの変更はなかったと、この問題が来て始めて以来、これはコード問題になることはできません知っています。 お勧めします。

+0

アップデート、これをNexus 6で実行しようとしましたが、動作しませんでしたが、これはNexus 4で正常に機能しました。 – user3520457

+0

これに対する解決策を見つけられましたか?私もそれに直面しています! @ user3520457 – ngoa

答えて

0

データが正しく解析されなかった場合にエラーがスローされます。

関連する問題