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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? http.java

?? < 網絡機器人java編程指南>>的配套源程序
?? JAVA
字號:
package com.heaton.bot;import java.util.zip.*;import java.net.*;import java.io.*;/** * This class implements an HTTP handler.  The low-level * details are left to a derived class.  Most likely you * will be using the HTTPSocket class, which derives from * this one.  This class handles these specific issues: * * + Cookies * + The referrer tag * + HTTP User Authentication * + Automatic Redirection * + Parsing headers * * Copyright 2001-2003 by Jeff Heaton (http://www.jeffheaton.com) * * @author Jeff Heaton * @version 1.0 */public abstract class HTTP {  /**   * The body data that was downloaded during the last send.   */  protected byte body[];  /**   * The raw header text that was recieved during the last   * send.   */  protected StringBuffer header = new StringBuffer();  /**   * The URL that was ultimately used during the last send.   */  protected String url;  /**   * True if the HTTP class should automatically follow HTTP   * redirects.   */  protected boolean autoRedirect = true;  /**   * The cookies that are being tracked by this HTTP session.   */  protected AttributeList cookieStore = new AttributeList();  /**   * The client headers, these are the headers that are sent   * to the server.   */  protected AttributeList clientHeaders = new AttributeList();  /**   * The server headers, these are the the headers that the   * server sends back.   */  protected AttributeList serverHeaders = new AttributeList();  /**   * True if session cookies should be used.   */  protected boolean useCookies = false;  /**   * True if permanent cookies should be used.   */  protected boolean usePermCookies = false;  /**   * The HTTP response(i.e. OK).  If NOT okay, this response is   * thrown as an exception.   */  protected String response;  /**   * The timeout in milliseconds.   */  protected int timeout = 30000;  /**   * The page previously on.  Used to accurately represent the   * referrer header.   */  protected String referrer = null;  /**   * The agent(or browser) that the HTTP class is reporting   * to the server.   */  protected String agent = "Mozilla/4.0";  /**   * The user being reported for HTTP authentication.   */  protected String user = "";  /**   * The password being reported for user authentication.   */  protected String password = "";  /**   * The max size that a HTTP body can be.   */  protected int maxBodySize = -1;  /**   * The actual page that was requested, URL may have been redirected   * elsewhere.   */  protected String rootURL;  protected int err;  /**   * The copy method is used to create a new copy of this HTTP handler.   * This method is implemented abstract and should be implemented by   * derived classes.   *   * @return A new HTTP handler.   */  abstract HTTP copy();  /**   * This method actually sends the data.  This is where derived   * classes implement their own low-level send.   *   * @param url The URL to send data to.   * @param post Any data that is to be posted.  If no data is posted, this method   * does an HTTP GET.   * @exception java.net.UnknownHostException Thrown if the host can not be located.   * @exception java.io.IOException Thrown if a network error occurs.   */  abstract protected void lowLevelSend(String url,String post)  throws java.net.UnknownHostException, java.io.IOException;  /**   * This method is called to clear any cookies that this HTTP   * object might be holding.   */  public void clearCookies()  {    cookieStore.clear();  }  /**   * This method is called to add any applicable cookies to the   * header.   */  protected void addCookieHeader()  {    int i=0;    String str="";    if ( cookieStore.get(0)==null )      return;    while ( cookieStore.get(i) != null ) {      CookieParse cookie;      if ( str.length()!=0 )        str+="; ";// add on ; if needed      cookie = (CookieParse)cookieStore.get(i);      str+=cookie.toString();      i++;    }    clientHeaders.set("Cookie",str);    Log.log(Log.LOG_LEVEL_TRACE,"Send cookie: " + str );  }  /**   * This method is called to add the user authorization headers   * to the HTTP request.   */  protected void addAuthHeader()  {    if ( (user.length()==0) || (password.length()==0) )      return;    String hdr = user + ":" + password;    String encode = URLUtility.base64Encode(hdr);    clientHeaders.set("Authorization","Basic " + encode );  }  /**   * Send is the public interface to this class that actually sends   * an HTTP request.   *   * @param url The URL being sent to.   * @param post Any data to post.   * @exception java.net.UnknownHostException   * @exception java.io.IOException   */  public void send(String requestedURL,String post)  throws HTTPException,java.net.UnknownHostException,java.io.IOException  {    int rtn; // the return value    if ( post==null )      Log.log(Log.LOG_LEVEL_NORMAL,"HTTP GET " + requestedURL );    else      Log.log(Log.LOG_LEVEL_NORMAL,"HTTP POST " + requestedURL );    rootURL = requestedURL;    setURL(requestedURL);    if ( clientHeaders.get("referrer")==null )      if ( referrer!=null )        clientHeaders.set("referrer",referrer.toString());    if ( clientHeaders.get("Accept")==null )      clientHeaders.set("Accept","image/gif,"                        + "image/x-xbitmap,image/jpeg, "                        + "image/pjpeg, application/vnd.ms-excel,"                        + "application/msword,"                        + "application/vnd.ms-powerpoint, */*");    if ( clientHeaders.get("Accept-Language")==null )      clientHeaders.set("Accept-Language","en-us");    if ( clientHeaders.get("User-Agent")==null )      clientHeaders.set("User-Agent",agent);    while ( true ) {      if ( useCookies )        addCookieHeader();      addAuthHeader();      lowLevelSend(this.url,post);      if ( useCookies )        parseCookies();      Attribute encoding = serverHeaders.get("Content-Encoding");      if ( (encoding!=null) && "gzip".equalsIgnoreCase(encoding.getValue()) )        processGZIP();      Attribute a = serverHeaders.get("Location");      if ( (a==null) || !autoRedirect ) {        referrer = getURL();        return;      }      URL u = new URL(new URL(url),a.getValue());      Log.log(Log.LOG_LEVEL_NORMAL,"HTTP REDIRECT to " + u.toString() );      setURL(u.toString());    }  }  /**   * This method is called to get the body data that was returned   * by this request as a string.   *   * @return The body data for the last request.   */  public String getBody()  {    return new String(body);  }  /**   * This method is called to get the body data that was returned   * by this request as an encoded string.   * @param enc How to encode the string.   * @exception UnsupportedEncodingException   * @return The body data for the last request.   */  public String getBody(String enc)  throws UnsupportedEncodingException  {    return new String(body,enc);  }  /**   * This method is called to get the body data that was returned   * by this request as a byte-array. This is more efficent than   * getting the data as a sting, as the data is stored internally   * as a byte-array.   *   * @return The body data for the last request.   */  public byte[] getBodyBytes()  {    return body;  }  /**   * Get the URL that was ultimately requested. You might get a   * different URL than was requested if auto redirection is   * enabled.   */  public String getURL()  {    return url;  }  /**   * Called to set the internal URL that is kept for the last   * request.   *   * @param u The new URL.   */  public void setURL(String u)  {    url = u;  }  /**   * Used to determine if the HTTP class should automatically   * resolve any HTTP redirects.   *   * @param b True to resolve redirects, false otherwise.   */  public void SetAutoRedirect(boolean b)  {    autoRedirect = b;  }  /**   * This method will return an AttributeLIst of client headers.   *   * @return An AttributeList of client headers.   */  public AttributeList getClientHeaders()  {    return clientHeaders;  }  /**   * This method will return an AttributeList of server headers.   *   * @return An AttributeList of server headers.   */  public AttributeList getServerHeaders()  {    return serverHeaders;  }  /**   * This method is called internally to parse any cookies and add   * them to the cookie store.   */  protected void parseCookies()  {    Attribute a;    int i=0;    while ( (a = serverHeaders.get(i++)) != null ) {      if ( a.getName().equalsIgnoreCase("set-cookie") ) {        CookieParse cookie = new CookieParse();        cookie.source=new StringBuffer(a.getValue());        cookie.get();        cookie.setName(cookie.get(0).getName());        if ( cookieStore.get(cookie.get(0).getName())==null ) {          if ( (cookie.get("expires")==null) ||               ( cookie.get("expires")!=null) && usePermCookies )            cookieStore.add(cookie);        }        Log.log(Log.LOG_LEVEL_TRACE,"Got cookie: " + cookie.toString() );      }    }  }  /**   * This method is called uncompress a GZIP encoded document.   */  protected void processGZIP()  throws IOException  {    ByteArrayInputStream bis = new ByteArrayInputStream(body);    GZIPInputStream is = new GZIPInputStream(bis);    StringBuffer newBody = new StringBuffer();    ByteList byteList = new ByteList();    byteList.read(is,-1);          body = byteList.detach();  }  /**   * This method is used to access a specific cookie.   *   * @param name The name of the cookie being sought.   * @return The cookie being sought, or null.   */  public CookieParse getCookie(String name)  {    return((CookieParse)cookieStore.get(name));  }  /**   * This method controls the use of cookies by this HTTP object.   *   * @param session True to use session cookies, false not to.   * @param perm True to use permanent cookies, false not to.   */  public void setUseCookies(boolean session,boolean perm)  {    useCookies = session;    usePermCookies = perm;  }  /**   * This method allows you to determine if session cookies   * are being used.   *   * @return True if session cookies are being used.   */  public boolean getUseCookies()  {    return useCookies;  }  /**   * This method allows you to determine if permanent cookies   * are being used.   *   * @return Returns true if permanent cookies are being used, false otherwise.   */  public boolean getPerminantCookies()  {    return usePermCookies;  }  protected void processResponse(String name)  throws java.io.IOException  {    int i1,i2;    response = name;    i1 = response.indexOf(' ');    if ( i1!=-1 ) {      i2 = response.indexOf(' ',i1+1);      if ( i2!=-1 ) {        try {          err=Integer.parseInt(response.substring(i1+1,i2));        } catch ( Exception e ) {        }      }    }    Log.log(Log.LOG_LEVEL_TRACE,"Response: " + name );  }  /**   * This method is called internally to process user headers.   *   * @exception java.io.IOException Thrown if a network error occurs.   */  protected void parseHeaders()  throws java.io.IOException  {    boolean first;    String name,value;    int l;    first = true;    serverHeaders.clear();    name = "";    String parse = new String(header);    for ( l=0;l<parse.length();l++ ) {      if ( parse.charAt(l)=='\n' ) {        if ( name.length()==0 )          return;        else {          if ( first ) {            first = false;            processResponse(name);          } else {            int ptr=name.indexOf(':');            if ( ptr!=-1 ) {              value = name.substring(ptr+1).trim();              name = name.substring(0,ptr);              Attribute a = new Attribute(name,value);              serverHeaders.add(a);              Log.log(Log.LOG_LEVEL_TRACE,"Sever Header:" + name + "=" + value);            }          }        }        name = "";      } else if ( parse.charAt(l)!='\r' )        name+=parse.charAt(l);    }  }  /**   * This method is called to set the amount of time that the   * HTTP class will wait for the requested resource.   *   * @param i The timeout in milliseconds.   */  public void setTimeout(int i)  {    timeout = i;  }  /**   * This method will return the amount of time in milliseconds   * that the HTTP object will wait for a timeout.   */  public int getTimeout()  {    return timeout;  }  /**   * This method will set the maximum body size   * that will be downloaded.   *   * @param i The maximum body size, or -1 for unlimted.   */  public void setMaxBody(int i)  {    maxBodySize = i;  }  /**   * This method will return the maximum body size   * that will be downloaded.   *   * @return The maximum body size, or -1 for unlimted.   */  public int getMaxBody()  {    return maxBodySize;  }  /**   * Returns the user agent being reported by this HTTP class.   * The user agent allows the web server to determine what   * software the web-browser is using.   *   * @return The agent string being presented to web servers.   */  public String getAgent()  {    return agent;  }  /**   * This method is called to set the agent reported to the browser.   *   * @param a The user agent string to be reported to servers.   */  public void setAgent(String a)  {    agent = a;  }  /**   * This method is called to set the user id for HTTP user   * authentication.   *   * @param u The user id.   */  public void setUser(String u)  {    user = u;  }  /**   * This method is used to set the user's password for HTTP   * user authentificaiton.   *   * @param p The password.   */  public void setPassword(String p)  {    password = p;  }  /**   * This method is used to return the user id that is being   * used for HTTP authentification.   *   * @return The user id.   */  public String getUser()  {    return user;  }  /**   * This method is used to get the password that is being used   * for user authentication.   *   * @return The password.   */  public String getPassword()  {    return password;  }  /**   * This method is used to get the referrer header   *   * @return The referrer header.   */  public String getReferrer()  {    return referrer;  }  /**   * This method is used to set the referrer header   *   * @param p The referrer header.   */  public void setReferrer(String p)  {    referrer = p;  }  /**   * This method will return an AttributeList of cookies.   *   * @return An AttributeList of server headers.   */  public AttributeList getCookies()  {    return cookieStore;  }  /**   * This method will return the first URL that was requested. This   * will be different than the current URL when redirection has occured.   *   * @return The root URL.   */  public String getRootURL()  {    return rootURL;  }    public String getContentType()  {      Attribute a = serverHeaders.get("Content-Type");      if( a==null )          return null;      else          return a.getValue();  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠色狠狠综合| 免费成人在线观看视频| 久久99精品久久久久久| 日韩一区二区视频在线观看| 国产在线精品一区二区夜色 | 欧美激情一区二区三区在线| 一本一道波多野结衣一区二区| 午夜精品久久久久久久| 国产欧美综合在线| 91精品国产综合久久蜜臀| 国产成人夜色高潮福利影视| 久久69国产一区二区蜜臀| 26uuu另类欧美亚洲曰本| 黄色小说综合网站| 欧美不卡123| 久久99国产精品尤物| www久久精品| 韩国午夜理伦三级不卡影院| 精品成人一区二区三区四区| 国产真实乱子伦精品视频| 久久亚洲精品小早川怜子| 国产精品正在播放| 久久日韩粉嫩一区二区三区| 精品在线观看视频| 国产日本欧洲亚洲| 成人白浆超碰人人人人| 亚洲欧洲精品一区二区精品久久久| av在线不卡免费看| 一区二区三区国产精品| 欧美精品电影在线播放| 午夜精品爽啪视频| 日韩免费高清av| 国产在线一区二区| 亚洲欧美日韩系列| 欧美三级电影精品| 日本女人一区二区三区| 26uuu精品一区二区| 白白色亚洲国产精品| 亚洲愉拍自拍另类高清精品| 欧美日韩aaa| 久久se这里有精品| 国产清纯白嫩初高生在线观看91 | 一区二区三区中文在线| 7777精品伊人久久久大香线蕉经典版下载 | 91亚洲永久精品| 天堂在线亚洲视频| 久久精品夜色噜噜亚洲a∨| av福利精品导航| 午夜电影网一区| 亚洲国产成人在线| 欧美一区二区网站| 成人av集中营| 亚洲最色的网站| 久久无码av三级| 欧美日韩国产片| 国产xxx精品视频大全| 亚洲成人精品影院| 国产精品三级电影| 欧美一区二区观看视频| jvid福利写真一区二区三区| 日韩中文字幕91| 日韩美女精品在线| 久久综合九色综合97婷婷女人| 欧洲av在线精品| 成人动漫一区二区三区| 免费不卡在线视频| 国产精品国产三级国产普通话三级 | 色综合天天做天天爱| 午夜影视日本亚洲欧洲精品| 精品成人在线观看| 色婷婷综合在线| 精品一区二区影视| 亚洲男人的天堂在线观看| 日韩欧美中文字幕制服| 97久久精品人人澡人人爽| 免费高清在线视频一区·| 国产精品福利电影一区二区三区四区| 69久久99精品久久久久婷婷| 麻豆成人综合网| 亚洲丝袜精品丝袜在线| 精品美女一区二区| fc2成人免费人成在线观看播放| 午夜电影网亚洲视频| 国产精品高潮呻吟久久| 精品成人在线观看| 欧美日韩精品专区| 91蝌蚪porny九色| 久久er99精品| 日韩一区精品字幕| 亚洲另类春色国产| 欧美激情一区二区三区不卡| 日韩精品一区在线观看| 欧美日韩视频在线观看一区二区三区 | 日韩精品影音先锋| 欧美女孩性生活视频| 99re成人精品视频| 丁香天五香天堂综合| 狠狠网亚洲精品| 亚洲成人tv网| 亚洲精品综合在线| 日本一区二区免费在线| 欧美一卡2卡3卡4卡| 在线观看欧美精品| 91同城在线观看| 成人免费高清在线观看| 国产精品一区二区三区乱码| 欧美bbbbb| 蜜乳av一区二区三区| 午夜成人在线视频| 一区二区成人在线观看| 中文字幕一区免费在线观看 | 成人av手机在线观看| 日本欧美在线看| 一区二区在线免费观看| 国产精品久久久久精k8| 中文字幕一区二区三区蜜月| 国产日韩高清在线| 国产欧美日本一区二区三区| 久久久91精品国产一区二区精品 | 一本色道久久综合精品竹菊| 成人h版在线观看| 高清视频一区二区| 国产精品一区专区| 国产高清精品久久久久| 国产乱人伦偷精品视频免下载| 精品无人区卡一卡二卡三乱码免费卡| 蜜臀久久99精品久久久久宅男| 日韩一区精品视频| 久久99精品国产麻豆不卡| 国产剧情一区二区三区| 国产一区二区精品在线观看| 精品亚洲aⅴ乱码一区二区三区| 紧缚奴在线一区二区三区| 国精品**一区二区三区在线蜜桃| 精彩视频一区二区| 成人av在线观| 欧美日韩在线电影| 日韩欧美的一区| 久久久综合九色合综国产精品| 国产三级精品在线| 欧美激情中文不卡| 亚洲人成亚洲人成在线观看图片| 一区二区三区中文在线| 日本亚洲最大的色成网站www| 国内精品伊人久久久久影院对白| 成人网在线免费视频| 日本高清无吗v一区| 日韩一区二区不卡| 日本一区二区三区高清不卡| 亚洲靠逼com| 欧美96一区二区免费视频| 国产成人午夜精品5599| 一本到不卡免费一区二区| 91成人免费在线视频| 日韩一区二区在线免费观看| 日韩三级视频中文字幕| 欧美一区二区三区思思人| 国产精品久久久久久户外露出| 亚洲欧洲精品一区二区三区不卡| 亚洲欧洲日产国产综合网| 亚洲人成人一区二区在线观看 | 蜜桃视频第一区免费观看| 成人免费高清视频| 欧美另类videos死尸| 亚洲国产精品成人综合| 午夜国产精品影院在线观看| 国产成人在线看| 91精品国产一区二区| 国产精品久久网站| 奇米影视一区二区三区小说| 99国产精品久久久久| 日韩三级伦理片妻子的秘密按摩| 久久久久久久综合色一本| 亚洲激情图片一区| 国产精品一区二区三区四区| 欧美日本精品一区二区三区| 国产目拍亚洲精品99久久精品| 午夜成人免费视频| 99久久99久久免费精品蜜臀| 精品国精品国产| 亚洲电影一区二区三区| 波多野结衣视频一区| 精品美女在线播放| 亚洲大片在线观看| www.视频一区| 精品久久国产老人久久综合| 亚洲福利视频一区二区| eeuss鲁片一区二区三区在线观看| 欧美一区欧美二区| 亚洲成人av资源| 99久久99久久精品国产片果冻| 欧美tickling挠脚心丨vk| 一区二区免费视频| 精品一区二区久久久| 日韩一区二区在线免费观看| 亚洲国产裸拍裸体视频在线观看乱了| av亚洲精华国产精华精华| 久久美女高清视频| 国内成人精品2018免费看| 日韩女优av电影在线观看|