【问题标题】:Android: java.io.IOException: java.util.zip.DataFormatException: invalid distance too far back while fetching data from serverAndroid:java.io.IOException:java.util.zip.DataFormatException:从服务器获取数据时距离太远
【发布时间】:2016-05-24 15:48:41
【问题描述】:

我在一个运行良好的代码上遇到问题。 我正在运行异步任务以从 android 中的 Web 服务器获取数据,问题是当控件进入异步任务中的 readLine 时出现异常,详细信息如下:

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);

?>

这个问题突然出现,我知道这不可能是代码问题,因为没有完成代码更改并且这个问题开始出现。 请提出建议。

【问题讨论】:

  • 更新,我尝试在 Nexus 6 上运行它,但没有成功,但在 Nexus 4 上运行良好。
  • 您能找到解决方案吗?我也在面对! @user3520457

标签: java android android-asynctask


【解决方案1】:

可能是数据解析不正确时抛出的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多