科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道j2me最佳联网方案终结版

j2me最佳联网方案终结版

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  (1) .由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP 1.0规范规定,HTTP协议是必须实现的协议,而其他协议的实现都是可选的。因此。

作者:中国IT实验室 来源:中国IT实验室 2007年9月22日

关键字: 联网 J2ME

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共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);

          }

        }

    }

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章