你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
用Java实现非阻塞的HTTP服务器(十三)
 

private Action action;

  private String version;

  private URI uri;

 

  public Action action() { return action; }

  public String version() { return version; }

  public URI uri() { return uri; }

 

  private Request(Action a, String v, URI u) {

    action = a;

    version = v;

    uri = u;

  }

 

  public String toString() {

    return (action + " " + version + " " + uri);

  }

 

  private static Charset requestCharset = Charset.forName("GBK");

 

  /* 判断ByteBuffer是否包含了HTTP请求的所有数据。

   * HTTP请求以\r\n\r\n结尾。

   */

  public static boolean isComplete(ByteBuffer bb) {

    ByteBuffer temp=bb.asReadOnlyBuffer();

    temp.flip();

    String data=requestCharset.decode(temp).toString();

    if(data.indexOf("\r\n\r\n")!=-1){

      return true;

    }

    return false;

  }

 

  /*

   * 删除请求正文本范例仅支持GETHEAD请求方式不处理HTTP请求中的正文部分

   */

  private static ByteBuffer deleteContent(ByteBuffer bb) {

    ByteBuffer temp=bb.asReadOnlyBuffer();

    String data=requestCharset.decode(temp).toString();

    if(data.indexOf("\r\n\r\n")!=-1){

        data=data.substring(0,data.indexOf("\r\n\r\n")+4);

        return requestCharset.encode(data);

    }

    return bb;

  }

  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089