@@ -33,24 +33,25 @@ public ProxyValidator(IWebProxy proxy)
3333 /// 使用http tunnel检测代理状态
3434 /// </summary>
3535 /// <param name="targetAddress">目标地址</param>
36+ /// <param name="timeout">发送或等待数据的超时时间</param>
3637 /// <exception cref="ArgumentNullException"></exception>
3738 /// <returns></returns>
38- public HttpStatusCode Validate ( Uri targetAddress )
39+ public HttpStatusCode Validate ( Uri targetAddress , TimeSpan timeout )
3940 {
4041 if ( targetAddress == null )
4142 {
4243 throw new ArgumentNullException ( nameof ( targetAddress ) ) ;
4344 }
4445
4546 var proxyInfo = ProxyInfo . FromWebProxy ( this . proxy , targetAddress ) ;
46- return ProxyValidator . Validate ( proxyInfo , targetAddress ) ;
47+ return ProxyValidator . Validate ( proxyInfo , targetAddress , timeout ) ;
4748 }
4849
4950 /// <summary>
5051 /// 使用http tunnel检测代理状态
5152 /// </summary>
5253 /// <param name="targetAddress">目标地址</param>
53- /// <param name="timeout">超时时间 </param>
54+ /// <param name="timeout">连接或等待数据的超时时间 </param>
5455 /// <exception cref="ArgumentNullException"></exception>
5556 /// <returns></returns>
5657 public Task < HttpStatusCode > ValidateAsync ( Uri targetAddress , TimeSpan timeout )
@@ -69,9 +70,10 @@ public Task<HttpStatusCode> ValidateAsync(Uri targetAddress, TimeSpan timeout)
6970 /// </summary>
7071 /// <param name="proxyInfo">代理服务器信息</param>
7172 /// <param name="targetAddress">目标url地址</param>
73+ /// <param name="timeout">发送或等待数据的超时时间</param>
7274 /// <exception cref="ArgumentNullException"></exception>
7375 /// <returns></returns>
74- public static HttpStatusCode Validate ( ProxyInfo proxyInfo , Uri targetAddress )
76+ public static HttpStatusCode Validate ( ProxyInfo proxyInfo , Uri targetAddress , TimeSpan timeout )
7577 {
7678 if ( proxyInfo == null )
7779 {
@@ -83,8 +85,8 @@ public static HttpStatusCode Validate(ProxyInfo proxyInfo, Uri targetAddress)
8385
8486 try
8587 {
86- socket . SendTimeout = 3 * 1000 ;
87- socket . ReceiveTimeout = 5 * 1000 ;
88+ socket . SendTimeout = ( int ) timeout . TotalMilliseconds ;
89+ socket . ReceiveTimeout = ( int ) timeout . TotalMilliseconds ;
8890 socket . Connect ( remoteEndPoint ) ;
8991
9092 var request = proxyInfo . ToHttpTunnelRequestString ( targetAddress ) ;
@@ -114,7 +116,7 @@ public static HttpStatusCode Validate(ProxyInfo proxyInfo, Uri targetAddress)
114116 /// </summary>
115117 /// <param name="proxyInfo">代理服务器信息</param>
116118 /// <param name="targetAddress">目标url地址</param>
117- /// <param name="timeout">超时时间 </param>
119+ /// <param name="timeout">连接或等待数据的超时时间 </param>
118120 /// <exception cref="ArgumentNullException"></exception>
119121 /// <returns></returns>
120122 public static async Task < HttpStatusCode > ValidateAsync ( ProxyInfo proxyInfo , Uri targetAddress , TimeSpan timeout )
0 commit comments