zoukankan      html  css  js  c++  java
  • 关于HTTP请求中断问题

    手机开发时侯,我们访问网络数据,经常因为各种原因会导致网络缓慢或者失去连接

    这时候,由于HttpConnection.getResponseCode()请求是阻塞的,我们的程序一般是单独线程去请求数据,该线程就会永远的等在那,并且事后即使连上了,接收到的数据一般都已经是我们抛弃的了.此时我们很想在请求超时的时侯将这个阻塞的请求异步关闭它,但是这样是无法实现的.

    一种方法是,我们直接用Connector.open的超时参数

    另一种方法我们自己控制,在后面接收数据的时侯中断掉.

    1 我们给HTTP请求线程封装上计时器

    2 在接收数据时侯,避免一个大byte[]读完,而是while循环读取固定大小的块

    3 在while读取数据时候,加入判断超时条件

    这样一来,如果是已经过时的数据,我们即使接到请求相应了,但是我们不必去接收它的数据,一来节省资源,而来为用户节省流量.


  • 相关阅读:
    cf C. Vasya and Robot
    zoj 3805 Machine
    cf B. Vasya and Public Transport
    cf D. Queue
    cf C. Find Maximum
    cf B. Two Heaps
    cf C. Jeff and Rounding
    cf B. Jeff and Periods
    cf A. Jeff and Digits
    I Think I Need a Houseboat
  • 原文地址:https://www.cnblogs.com/SQL/p/1862778.html
Copyright © 2011-2022 走看看