HTTP请求时connectionRequestTimeout 、connectionTimeout、socketTimeout三个超时时间的含义

connectionRequestTimout:指从连接池获取连接的timeout

connetionTimeout:指客户端和服务器建立连接的timeout,
就是http请求的三个阶段,一:建立连接;二:数据传送;三,断开连接。超时后会ConnectionTimeOutException

socketTimeout:指客户端从服务器读取数据的timeout,超出后会抛出SocketTimeOutException

/** 
    * Returns the timeout in milliseconds used when requesting a connection 
    * from the connection manager. A timeout value of zero is interpreted 
    * as an infinite timeout. 
    * A timeout value of zero is interpreted as an infinite timeout. 
    * A negative value is interpreted as undefined (system default). 
    * Default: {@code -1} 
    */
   public int getConnectionRequestTimeout() {  
       return connectionRequestTimeout;  
   }  

     /** 
    * Determines the timeout in milliseconds until a connection is established. 
    * A timeout value of zero is interpreted as an infinite timeout. 
    * A timeout value of zero is interpreted as an infinite timeout. 
    * A negative value is interpreted as undefined (system default). 
    * Default: {@code -1} 
    */  
   public int getConnectTimeout() {  
       return connectTimeout;  
   }  

   /** 
    * Defines the socket timeout ({@code SO_TIMEOUT}) in milliseconds, 
    * which is the timeout for waiting for data  or, put differently, 
    * a maximum period inactivity between two consecutive data packets). 
    * A timeout value of zero is interpreted as an infinite timeout. 
    * A negative value is interpreted as undefined (system default). 
    * Default: {@code -1} 
    */  
   public int getSocketTimeout() {  
       return socketTimeout;  
   }  

你可能感兴趣的:(杂谈)