亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? httpdecoder.java

?? 功能全面的WEB聊天室原代碼 非常經(jīng)典 很有借鑒 07年畢業(yè)設(shè)計(jì)作品
?? JAVA
字號:
package freech.core;

import java.io.*;
import java.net.Socket;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;

public class HttpDecoder {

	private Socket s = null;
    private String method =null;
	private String action = null;

	private Hashtable params = null;
    private Hashtable header = null;
	private String cookie = null;

	public HttpDecoder(Socket s) {
		this.s = s;
		this.params = new Hashtable();
		this.header = new Hashtable();
		try {
			parse();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void parse() throws IOException, InterruptedException {
		InputStream is = s.getInputStream();
		BufferedReader in = new BufferedReader(new InputStreamReader(is));

		if (in == null) {
			//
		}
		StringTokenizer st = new StringTokenizer(in.readLine() );
		if (!st.hasMoreTokens()) {
			System.out
					.println("bad request:Syntax error. Usage: GET /example/file.html");
		}

		method = st.nextToken();// get,post
		if (!st.hasMoreTokens()) {
			System.out
					.println("BAD REQUEST: Missing URI. Usage: GET /example/file.html");
		}
		//讀取uri
		String uri = decodePercent(st.nextToken());
		int pos = uri.indexOf("?");//參數(shù)可能接在?之后
		
		if (pos > -1) {
			action = decodePercent(uri.substring(0, pos));
            DecodeParams(uri.substring( pos+1));
		}else{
			action =decodePercent(uri);
		}
		//讀頭部
		String line = in.readLine() ;
		while(line.trim() .length() >0){
			int p=line.indexOf( ":");
			String key = line.substring( 0,p).trim().toLowerCase();
			String value = line.substring( p+1).trim();
			if(key.equals( "cookie")){
				String[] cookiepair = value.split( ";");
				for(int i = 0;i<cookiepair.length ;i++){
					String[] cp = cookiepair[i].trim() .split( "=");
					if(cp.length <2){
						continue;
					}
					if(!cookiepair[i].trim() .startsWith( "FreeChSession")){
						continue;
					}
					value = cp[1].trim() ;//cookie的值
				}
			}
			header.put( key  ,value );
			line = in.readLine() ;
		}
		//到這里,是一個(gè)空行
	    
        //如果方法是POST, 可能參數(shù)在數(shù)據(jù)段中,讀取它:
		if(method.equalsIgnoreCase( "POST")){
			int size = Integer.MAX_VALUE ;
			String contentlength = (String)header.get( "content-length");
			if(contentlength!=null){
				size = Integer.parseInt( contentlength);
			}
			String postline="";//所有參數(shù)
			char[] buf = new char[512];
			int readlen=in.read(buf)  ;
			
			while(readlen >=0&&size>0&&!postline.endsWith( "\r\n")){
	
				size-=readlen;
				postline += String.valueOf(buf,0,readlen);
				if(size>0){
					readlen =in.read( buf);
				}
			}
			postline = postline.trim() ;
			DecodeParams(postline);
		}
		//in.close() ;
		
        printData();
	}
	
	private String decodePercent( String str ) throws InterruptedException
	{
		try
		{
			StringBuffer sb = new StringBuffer();
			for( int i=0; i<str.length(); i++ )
			{
			    char c = str.charAt( i );
			    switch ( c )
				{
			        case '+':
			            sb.append( ' ' );
			            break;
			        case '%':
		                sb.append((char)Integer.parseInt( str.substring(i+1,i+3), 16 ));
			            i += 2;
			            break;
			        default:
			            sb.append( c );
			            break;
			    }
			}
			return new String( sb.toString().getBytes());
		}
		catch( Exception e )
		{
			System.out.println("BAD REQUEST: Bad percent-encoding." );
			return null;
		}
	}

	
	private void DecodeParams(String param) throws InterruptedException, UnsupportedEncodingException{
		if (param == null){
			return;
		}
		StringTokenizer st = new StringTokenizer(param,"&");
		while(st.hasMoreTokens() ){
			String e = st.nextToken() ;
			//StringTokenizer st1 = new StringTokenizer(e,"=");
			//if(st1.hasMoreTokens() ){
			//String param_name =st1.nextToken().trim();
			//String param_value = st1.nextToken().trim();//此處出錯(cuò)
			
			int sep = e.indexOf( '=');
			if(sep>=0){
				String param_name=decodePercent(e.substring( 0,sep).trim());
				//param_name =new String(param_name.getBytes( "BIG5"),"gb2312");
				String param_value = decodePercent(e.substring( sep+1).trim());
				param_value =new String(param_value.getBytes( "UTF8"));
			    params.put( param_name,param_value);
		      }
		}
	}
	
	private void printData(){
		System.out.println( method + " '" + action + "' " );
		Enumeration e = header.keys() ;
		while(e.hasMoreElements() ){
			String name = (String)e.nextElement() ;
			String value = (String)header.get(name);
			System.out.println( "  HDR: '" + name + "' = '" + value + "'" );
		}
		e = params.keys() ;
		while(e.hasMoreElements() ){
			String name = (String)e.nextElement() ;
			String value = (String)params.get(name);
			System.out.println( "  PRM: '" + name + "' = '" + value + "'" );
		}
	}

	public String getAction() {
		if(action.length() !=1){
			int pos = action.indexOf('/');
			if(pos == 0){
				action = action.substring( 1);//去除"/"
			}
		}
		return action;
	}

	public Hashtable getParam() {
		return params;
	}

	public String getCookie() {
		return (String)header.get( "cookie");
	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲超丰满肉感bbw| 成人av电影在线| 欧美日韩精品综合在线| 一区二区三区**美女毛片| 91浏览器打开| 日韩国产在线观看一区| 欧美一区二区福利视频| 精品一区二区免费| 久久久精品影视| 91免费精品国自产拍在线不卡 | 91精品麻豆日日躁夜夜躁| 日日噜噜夜夜狠狠视频欧美人| 91麻豆精品91久久久久久清纯| 美女网站色91| 欧美—级在线免费片| 色哟哟精品一区| 麻豆精品蜜桃视频网站| 欧美一区二区三区免费视频| 看电视剧不卡顿的网站| 欧美videossexotv100| 成人性视频免费网站| 亚洲精品国产第一综合99久久| 欧美精品一二三| 国产精品99久久久久久久vr | 欧美一区二区三区公司| 国产麻豆视频一区二区| 一区二区三区国产豹纹内裤在线| 欧美一区日本一区韩国一区| 国产黄色精品视频| 亚洲chinese男男1069| 26uuu久久天堂性欧美| 91浏览器打开| 国产福利一区在线观看| 亚洲乱码国产乱码精品精98午夜| 日韩欧美一级二级| 91视频你懂的| 韩国毛片一区二区三区| 亚洲与欧洲av电影| 欧美国产精品久久| 欧美一区二区三区播放老司机| 成人免费视频caoporn| 男男成人高潮片免费网站| 中文字幕一区二区三区四区| 日韩亚洲欧美在线观看| 在线视频一区二区三区| 国产精品一二三四五| 偷窥少妇高潮呻吟av久久免费| 国产精品欧美经典| 精品久久久久久最新网址| 欧美日韩亚洲综合在线 | www.日韩大片| 久久99蜜桃精品| 亚洲成av人片在www色猫咪| 中文一区二区在线观看| 精品捆绑美女sm三区| 欧美日韩一区二区三区免费看| 国产99久久精品| 精东粉嫩av免费一区二区三区| 亚洲成人免费观看| 一区二区三区高清| 成人免费一区二区三区在线观看| 久久婷婷综合激情| 日韩欧美你懂的| 日韩欧美在线网站| 91精品国产综合久久婷婷香蕉 | 丝袜亚洲另类丝袜在线| 亚洲免费观看在线观看| 欧美国产国产综合| 久久久国产一区二区三区四区小说| 在线播放亚洲一区| 91精品国产综合久久久蜜臀图片| 欧美性色aⅴ视频一区日韩精品| 91小视频在线免费看| 99免费精品视频| 99久久伊人精品| 99久久久无码国产精品| 色综合网站在线| 日本道免费精品一区二区三区| 色综合久久综合网欧美综合网| 91丨九色丨国产丨porny| 99re亚洲国产精品| 色94色欧美sute亚洲线路二| 在线日韩av片| 欧美精品丝袜久久久中文字幕| 欧美喷水一区二区| 51精品视频一区二区三区| 欧美一区二区三区男人的天堂| 欧美高清www午色夜在线视频| 欧美情侣在线播放| 精品欧美黑人一区二区三区| 久久久三级国产网站| 中文一区二区在线观看| 亚洲女厕所小便bbb| 一区av在线播放| 日韩制服丝袜av| 国产在线一区二区| 99久久综合国产精品| 色中色一区二区| 91精品在线免费观看| 久久免费国产精品| 亚洲美女精品一区| 婷婷激情综合网| 国产精品99精品久久免费| 99久久久久久99| 欧美人牲a欧美精品| 久久青草欧美一区二区三区| 中日韩av电影| 亚洲国产视频在线| 精品一区二区免费看| aaa亚洲精品一二三区| 欧美日韩国产电影| 国产免费观看久久| 亚洲成av人片在线| 国产成人日日夜夜| 欧美日韩精品欧美日韩精品一| 2020国产精品自拍| 一区二区三区不卡在线观看| 久久不见久久见免费视频7| 99riav久久精品riav| 欧美福利视频导航| 国产精品视频第一区| 视频精品一区二区| 波多野结衣中文字幕一区二区三区| 欧美日韩精品欧美日韩精品一综合| 2017欧美狠狠色| 亚洲电影一级片| 成人国产精品免费观看| 日韩欧美国产1| 一区二区三区中文在线| 韩国精品一区二区| 欧美日韩电影在线播放| 国产精品你懂的在线欣赏| 日韩中文欧美在线| 在线亚洲一区观看| 国产精品污www在线观看| 日韩精彩视频在线观看| 色综合天天综合| 亚洲国产精品精华液2区45| 日韩制服丝袜av| 欧美系列一区二区| 亚洲色图欧洲色图婷婷| 国产美女娇喘av呻吟久久| 8x福利精品第一导航| 亚洲乱码一区二区三区在线观看| 国产麻豆视频一区| 精品国产乱码久久久久久老虎| 午夜av一区二区三区| 91美女视频网站| 中文字幕巨乱亚洲| 国产伦精品一区二区三区在线观看| 欧美一区二区精品在线| 一区二区三区在线观看国产 | 蜜桃视频一区二区| 欧美日韩精品免费| 一区二区三区欧美亚洲| 99re66热这里只有精品3直播 | 日韩亚洲欧美在线观看| 亚洲一区二区三区四区在线 | 久久久久亚洲蜜桃| 美国毛片一区二区三区| 欧美日韩激情在线| 亚洲午夜一二三区视频| 欧美亚洲综合另类| 亚洲最新视频在线播放| 在线一区二区三区做爰视频网站| 日韩美女久久久| 色吊一区二区三区| 亚洲午夜视频在线| 欧美日韩专区在线| 日韩在线一区二区| 欧美一级日韩一级| 极品少妇xxxx偷拍精品少妇| 久久影音资源网| 国产精品一区二区在线播放| 久久久久国产成人精品亚洲午夜| 国产精品网站在线播放| 风间由美中文字幕在线看视频国产欧美| 88在线观看91蜜桃国自产| 天天av天天翘天天综合网| 欧美日韩不卡一区| 青青草国产成人av片免费| 欧美一区二区三级| 国产美女在线观看一区| 日本一区二区三区久久久久久久久不| 国产馆精品极品| 中文字幕一区二区三区不卡| 色综合色综合色综合| 亚洲成在人线免费| 欧美刺激午夜性久久久久久久| 韩国视频一区二区| 国产精品青草综合久久久久99| av亚洲精华国产精华| 亚洲综合色区另类av| 91精品国产色综合久久| 韩国欧美一区二区| 亚洲欧洲无码一区二区三区| 欧美性做爰猛烈叫床潮| 久久国产精品99久久人人澡| 国产欧美综合色| 欧洲国产伦久久久久久久|