岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> J2ME >> 无线开发 >> Java正文
j2me最佳联网方案终结版
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 22:55:21
void onSetSize(int size) { … }

}

 

[1] [2] [3] [4] [5] 下一页  

  HttpThread是负责处理Http连接的线程类,它接受一个URL和HttpListener:

class HttpThread extends Thread {

  private static final int MAX_LENGTH = 20 * 1024; // 20K

  private boolean cancel = false;

  private String url;

  private byte[] buffer = null;

  private HttpListener listener;

  public HttpThread(String url, HttpListener listener) {

    this.url = url;

    this.listener = listener;

  }

  public void cancel() { cancel = true; }

}

(2). 使用GET获取内容

  我们先讨论最简单的GET请求。GET请求只需向服务器发送一个URL,然后取得服务器响应即可。在HttpThread的run()方法中实现如下:

public void run() {

  HttpConnection hc = null;

  InputStream input = null;

  try {

    hc = (HttpConnection)Connector.open(url);

    hc.setRequestMethod(HttpConnection.GET); // 默认即为GET

    hc.setRequestProperty("User-Agent", USER_AGENT);

    // get response code:

    int code = hc.getResponseCode();

    if(code!=HttpConnection.HTTP_OK) {

        listener.onError(code, hc.getResponseMessage());

        return;

    }

    // get size:

    int size = (int)hc.getLength(); // 返回响应大小,或者-1如果大小无法确定

    listener.onSetSize(size);

    // 开始读响应:

    input = hc.openInputStream();

    int percent = 0; // percentage

    int tmp_percent = 0;

    int index = 0; // buffer index

    int reads; // each byte

    if(size!=(-1))

        buffer = new byte[size]; // 响应大小已知,确定缓冲区大小

    else

        buffer = new byte[MAX_LENGTH]; // 响应大小未知,设定一个固定大小的缓冲区

    while(!cancel) {

        int len = buffer.length - index;

        len = len>128 ? 128 : len;

        reads = input.read(buffer, index, len);

        if(reads<=0)

          break;

        index += reads;

        if(size>0) { // 更新进度

          tmp_percent = index * 100 / size;

          if(tmp_percent!=percent) {

            percent = tmp_percent;

            listener.onProgress(percent);

          }

上一页  [1] [2] [3] [4] [5] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:WebSyue@163.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    惊天动地私服 天龙八部私服 天龙八部私服 热血江湖私服 天龙八部私服 bet365 bet365 传世私服 传奇世界私服