⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpconnection.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* HTTPConnection.java --   Copyright (C) 2004, 2005  Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version. GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package gnu.java.net.protocol.http;import gnu.classpath.Configuration;import gnu.classpath.SystemProperties;import gnu.java.net.EmptyX509TrustManager;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetSocketAddress;import java.net.Socket;import java.security.GeneralSecurityException;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import javax.net.ssl.HandshakeCompletedListener;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocket;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;/** * A connection to an HTTP server. * * @author Chris Burdess (dog@gnu.org) */public class HTTPConnection{  /**   * The default HTTP port.   */  public static final int HTTP_PORT = 80;  /**   * The default HTTPS port.   */  public static final int HTTPS_PORT = 443;  private static final String userAgent = SystemProperties.getProperty("http.agent");  /**   * The host name of the server to connect to.   */  protected final String hostname;  /**   * The port to connect to.   */  protected final int port;  /**   * Whether the connection should use transport level security (HTTPS).   */  protected final boolean secure;  /**   * The connection timeout for connecting the underlying socket.   */  protected final int connectionTimeout;  /**   * The read timeout for reads on the underlying socket.   */  protected final int timeout;  /**   * The host name of the proxy to connect to.   */  protected String proxyHostname;  /**   * The port on the proxy to connect to.   */  protected int proxyPort;  /**   * The major version of HTTP supported by this client.   */  protected int majorVersion;  /**   * The minor version of HTTP supported by this client.   */  protected int minorVersion;  private final List handshakeCompletedListeners;  /**   * The socket this connection communicates on.   */  protected Socket socket;  /**   * The SSL socket factory to use.   */  private SSLSocketFactory sslSocketFactory;  /**   * The socket input stream.   */  protected InputStream in;  /**   * The socket output stream.   */  protected OutputStream out;  /**   * Nonce values seen by this connection.   */  private Map nonceCounts;  /**   * The cookie manager for this connection.   */  protected CookieManager cookieManager;  /**   * The pool that this connection is a member of (if any).   */  private LinkedHashMap pool;  /**   * Creates a new HTTP connection.   * @param hostname the name of the host to connect to   */  public HTTPConnection(String hostname)  {    this(hostname, HTTP_PORT, false, 0, 0);  }  /**   * Creates a new HTTP or HTTPS connection.   * @param hostname the name of the host to connect to   * @param secure whether to use a secure connection   */  public HTTPConnection(String hostname, boolean secure)  {    this(hostname, secure ? HTTPS_PORT : HTTP_PORT, secure, 0, 0);  }  /**   * Creates a new HTTP or HTTPS connection on the specified port.   * @param hostname the name of the host to connect to   * @param secure whether to use a secure connection   * @param connectionTimeout the connection timeout   * @param timeout the socket read timeout   */  public HTTPConnection(String hostname, boolean secure,                        int connectionTimeout, int timeout)  {    this(hostname, secure ? HTTPS_PORT : HTTP_PORT, secure,         connectionTimeout, timeout);  }    /**   * Creates a new HTTP connection on the specified port.   * @param hostname the name of the host to connect to   * @param port the port on the host to connect to   */  public HTTPConnection(String hostname, int port)  {    this(hostname, port, false, 0, 0);  }  /**   * Creates a new HTTP or HTTPS connection on the specified port.   * @param hostname the name of the host to connect to   * @param port the port on the host to connect to   * @param secure whether to use a secure connection   */  public HTTPConnection(String hostname, int port, boolean secure)  {    this(hostname, port, secure, 0, 0);  }    /**   * Creates a new HTTP or HTTPS connection on the specified port.   * @param hostname the name of the host to connect to   * @param port the port on the host to connect to   * @param secure whether to use a secure connection   * @param connectionTimeout the connection timeout   * @param timeout the socket read timeout   */  public HTTPConnection(String hostname, int port, boolean secure,                        int connectionTimeout, int timeout)  {    this.hostname = hostname;    this.port = port;    this.secure = secure;    this.connectionTimeout = connectionTimeout;    this.timeout = timeout;    majorVersion = minorVersion = 1;    handshakeCompletedListeners = new ArrayList(2);  }  /**   * Returns the name of the host to connect to.   */  public String getHostName()  {    return hostname;  }  /**   * Returns the port on the host to connect to.   */  public int getPort()  {    return port;  }  /**   * Indicates whether to use a secure connection or not.   */  public boolean isSecure()  {    return secure;  }  /**   * Returns the HTTP version string supported by this connection.   * @see #version   */  public String getVersion()  {    return "HTTP/" + majorVersion + '.' + minorVersion;  }  /**   * Sets the HTTP version supported by this connection.   * @param majorVersion the major version   * @param minorVersion the minor version   */  public void setVersion(int majorVersion, int minorVersion)  {    if (majorVersion != 1)      {        throw new IllegalArgumentException("major version not supported: " +                                           majorVersion);      }    if (minorVersion < 0 || minorVersion > 1)      {        throw new IllegalArgumentException("minor version not supported: " +                                           minorVersion);      }    this.majorVersion = majorVersion;    this.minorVersion = minorVersion;  }  /**   * Directs this connection to use the specified proxy.   * @param hostname the proxy host name   * @param port the port on the proxy to connect to   */  public void setProxy(String hostname, int port)  {    proxyHostname = hostname;    proxyPort = port;  }  /**   * Indicates whether this connection is using an HTTP proxy.   */  public boolean isUsingProxy()  {    return (proxyHostname != null && proxyPort > 0);  }  /**   * Sets the cookie manager to use for this connection.   * @param cookieManager the cookie manager   */  public void setCookieManager(CookieManager cookieManager)  {    this.cookieManager = cookieManager;  }  /**   * Returns the cookie manager in use for this connection.   */  public CookieManager getCookieManager()  {    return cookieManager;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -