下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → 文本传输协议HTTP包__教程
文本传输协议HTTP包__教程
日期:2007-5-20 0:37:08 人气:97     [ ]
上一页 [1] [2] [3] [4] [5] 下一页

  public SocketRequest(InputStream input) {
    this.input = input;
  }
 public SocketRequest(Socket socket) {
    this.input = socket.getInputStream();
  }

  public void ReadData() {  //解析 获得InputStream的数据
 
  ReadHeader();  //头部

  if(beChucked) //为Chucked
  {
   int ChuckSize=0;
   while((ChuckSize=getChuckSize())>0) //多个Chucked
   {
    readLenData(ChuckSize+2);//读取定长数据
   }
   readLenData(2); //最后的2位 
  }
  
  if(CONTENT_LENGTH>0)
  {
   readLenData(CONTENT_LENGTH);//读取定长数据
  }
  
    uri = "";//parseUri(new String(request));
  }
 
  private void readLenData(int size)  //读取定长数据
  {
   int readed=0;  //已经读取数
   try{
    int available=0;//input.available(); //可读数
    if(available>(size-readed)) available=size-readed;
    while( readed<size )
     {
       while(available==0){  //等到有数据可读
         available = input.available(); //可读数
        }
        if(available>(size-readed)) available= size-readed; //size-readed--剩余数
        if(available>2048) available= 2048; //size-readed--剩余数
       byte[] buffer = new byte[available];
       int reading = input.read(buffer);
       request=request.append(new String(buffer,0,reading));  //byte数组相加
        readed+=reading;  //已读字符
   }
   }catch(IOException e){
     System.out.println("Read readLenData Error!");
   }
 }
 
   private void  ReadHeader() //读取头部 并获得大小
   {
    byte[]  crlf   = new byte[1];
   int     crlfNum= 0;   //已经连接的回车换行数 crlfNum=4为头部结束
    try{
     while( input.read(crlf)!=-1 )   //读取头部
     {
      if(crlf[0]==crlf13 || crlf[0]==crlf10)
      {
         crlfNum++;
      }
      else
      {  crlfNum=0;  } //不是则清
      request=request.append(new String(crlf,0,1));  //byte数组相加
      if(crlfNum==4) break;
     }
   }catch(IOException e){
     System.out.println("Read Http Header Error!");
     return;
    }
  
    String tempStr=(new String(request)).toUpperCase();
    
    //这里我只处理了GET与POST方法
    String  strMethod  = tempStr.substring(0,4);
    if(strMethod.equals("GET ")) //前
    {  beGet=true;    
    }
    else if(strMethod.equals("POST"))
    {
     bePost=true;
     getContentlen_Chucked(tempStr);
    }
    else {
     System.out.println("不支持的HTTP包类型");
     
    } //其它的其它类型 暂不支持
  }

出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.