﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-HTTPCLIENT</title><link>http://www.blogjava.net/paulwong/category/53443.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 03 Sep 2021 07:53:04 GMT</lastBuildDate><pubDate>Fri, 03 Sep 2021 07:53:04 GMT</pubDate><ttl>60</ttl><item><title>Java9之HttpClient</title><link>http://www.blogjava.net/paulwong/archive/2021/09/03/435964.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 03 Sep 2021 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2021/09/03/435964.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435964.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2021/09/03/435964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435964.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->Java9之HttpClientAPI实战详解<br />https://blog.csdn.net/u014042066/article/details/78153653<br /><br />Java&nbsp;9&nbsp;揭秘（14.&nbsp;HTTP/2&nbsp;Client&nbsp;API）<br />https://www.cnblogs.com/IcanFixIt/p/7229611.html<br /><br />Java&nbsp;JDK11(Java11)中设置HttpClient允许不安全的HTTPS连接<br />https://www.cjavapy.com/article/84/</div><img src ="http://www.blogjava.net/paulwong/aggbug/435964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2021-09-03 14:04 <a href="http://www.blogjava.net/paulwong/archive/2021/09/03/435964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>httpClient连接自制SSL证书的rest服务</title><link>http://www.blogjava.net/paulwong/archive/2021/09/01/435961.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 01 Sep 2021 06:24:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2021/09/01/435961.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435961.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2021/09/01/435961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435961.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435961.html</trackback:ping><description><![CDATA[通常如果rest服务支持https，需申请收费的ssl证书，但也可自制这种证书。<br /><a id="Editor_Results_rprSelectionList_ctl02_Hyperlink1" href="http://www.blogjava.net/paulwong/archive/2020/12/29/435757.html" style="color: black; text-decoration-line: none; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: #ffffff; font-size: 12px; font-family: Arial;">httpClient</a>进行链接时要进行相应的设置，&nbsp;主要是设置SSLContext中的<span style="font-size: 13px; background-color: #eeeeee;">TrustSelfSignedStrategy</span>：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span>&nbsp;java.security.KeyManagementException;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.security.KeyStoreException;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.security.NoSuchAlgorithmException;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.util.concurrent.TimeUnit;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;javax.net.ssl.SSLContext;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.client.config.RequestConfig;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.conn.ssl.TrustSelfSignedStrategy;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.impl.client.CloseableHttpClient;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.impl.client.HttpClients;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.impl.conn.PoolingHttpClientConnectionManager;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.ssl.SSLContexts;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.context.annotation.Bean;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.context.annotation.Configuration;<br /><br /><br />@Configuration<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;HttpClientConfiguration&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;PoolingHttpClientConnectionManager&nbsp;poolingHttpClientConnectionManager(AbstractProperties&nbsp;kycProperties)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PoolingHttpClientConnectionManager&nbsp;result&nbsp;=&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;PoolingHttpClientConnectionManager(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kycProperties.getHttpConnectionTimeToLiveMinu(),&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeUnit.MINUTES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.setMaxTotal(200);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.setDefaultMaxPerRoute(20);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;RequestConfig&nbsp;requestConfig(AbstractProperties&nbsp;kycProperties)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;RequestConfig<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.custom()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectionRequestTimeout(kycProperties.getHttpConnectionTimeout())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectTimeout(kycProperties.getHttpConnectionTimeout())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setSocketTimeout(kycProperties.getHttpConnectionTimeout())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.build();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;SSLContext&nbsp;sslContext()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;KeyManagementException,&nbsp;NoSuchAlgorithmException,&nbsp;KeyStoreException&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;SSLContexts<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.custom()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.loadTrustMaterial(<span style="color: #0000FF; ">null</span>,&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;TrustSelfSignedStrategy())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.build()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;CloseableHttpClient&nbsp;httpClient(AbstractProperties&nbsp;kycProperties)&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;KeyManagementException,&nbsp;NoSuchAlgorithmException,&nbsp;KeyStoreException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;HttpClients<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.custom()<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectionManager(poolingHttpClientConnectionManager(null))</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setDefaultRequestConfig(requestConfig(<span style="color: #0000FF; ">null</span>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setKeepAliveStrategy(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;MyConnectionKeepAliveStrategy(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kycProperties.getHttpConnectionTimeToLiveMinu(),&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeUnit.MINUTES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setMaxConnTotal(200)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setMaxConnPerRoute(20)<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectionTimeToLive(<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kycProperties.getHttpConnectionTimeToLiveMinu(),&nbsp;<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeUnit.MINUTES<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setSSLContext(sslContext())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.build();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><br />相应设置<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->http-connection-timeout:&nbsp;30000<br />http-connection-time-to-live-minu:&nbsp;5</div><img src ="http://www.blogjava.net/paulwong/aggbug/435961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2021-09-01 14:24 <a href="http://www.blogjava.net/paulwong/archive/2021/09/01/435961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>http connection存活期</title><link>http://www.blogjava.net/paulwong/archive/2020/12/31/435760.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 31 Dec 2020 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2020/12/31/435760.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435760.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2020/12/31/435760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435760.html</trackback:ping><description><![CDATA[HTTP1.1的链接，默认是长链接，不会主动关闭。<br /><div>LINUX会默认保留链接5天再关闭。</div>建立HTTP链接其实也是调用TCL的协议去建立，包括开始的时候有三次握手，关闭的时候有四次握手。关闭链接双方都可以发起。<br />但这些链接可能会被防火墙关掉而不通知建立链接的双方，因此设置需设置链接的存活期。<br />使用httpClient的链接池时，要设置池中的链接存活期或设置存活策略。<br />检测存活期只在每次发送数据时，才检测取出的链接是否超过存活期，如超过则关闭。<br />设置存活期的策略：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span>&nbsp;java.util.concurrent.TimeUnit;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.HeaderElement;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.HeaderElementIterator;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.HttpResponse;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.conn.ConnectionKeepAliveStrategy;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.message.BasicHeaderElementIterator;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.protocol.HTTP;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.protocol.HttpContext;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.util.Args;<br /><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MyConnectionKeepAliveStrategy&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;ConnectionKeepAliveStrategy{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;timeToLive;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;TimeUnit&nbsp;timeUnit;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;MyConnectionKeepAliveStrategy(<span style="color: #0000FF; ">int</span>&nbsp;timeToLive,&nbsp;TimeUnit&nbsp;timeUnit)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.timeToLive&nbsp;=&nbsp;timeToLive;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.timeUnit&nbsp;=&nbsp;timeUnit;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;getKeepAliveDuration(<span style="color: #0000FF; ">final</span>&nbsp;HttpResponse&nbsp;response,&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;HttpContext&nbsp;context)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Args.notNull(response,&nbsp;"HTTP&nbsp;response");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;HeaderElementIterator&nbsp;it&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BasicHeaderElementIterator(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.headerIterator(HTTP.CONN_KEEP_ALIVE));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(it.hasNext())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;HeaderElement&nbsp;he&nbsp;=&nbsp;it.nextElement();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;String&nbsp;param&nbsp;=&nbsp;he.getName();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;String&nbsp;value&nbsp;=&nbsp;he.getValue();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(value&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>&nbsp;&amp;&amp;&nbsp;param.equalsIgnoreCase("timeout"))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;Long.parseLong(value)&nbsp;*&nbsp;1000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>(<span style="color: #0000FF; ">final</span>&nbsp;NumberFormatException&nbsp;ignore)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">do&nbsp;nothing</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;timeUnit.toMillis(timeToLive);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><br />《HttpClient官方文档》2.6 连接维持存活策略<br /><a href="http://ifeve.com/httpclient-2-6/" target="_blank">http://ifeve.com/httpclient-2-6/</a><br /><br />httpclient连接池管理，你用对了？<br /><a href="http://ifeve.com/http-connection-pool/" target="_blank">http://ifeve.com/http-connection-pool/</a><br /><br />HttpClient连接池的一些思考<br /><a href="https://zhuanlan.zhihu.com/p/85524697" target="_blank">https://zhuanlan.zhihu.com/p/85524697</a><br /><br />HTTP协议的Keep-Alive 模式<br /><a href="https://www.jianshu.com/p/49551bda6619" target="_blank">https://www.jianshu.com/p/49551bda6619</a><img src ="http://www.blogjava.net/paulwong/aggbug/435760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2020-12-31 15:08 <a href="http://www.blogjava.net/paulwong/archive/2020/12/31/435760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>httpClient Connection Pool使用的正确姿势</title><link>http://www.blogjava.net/paulwong/archive/2020/12/29/435757.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 29 Dec 2020 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2020/12/29/435757.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435757.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2020/12/29/435757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435757.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435757.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">import</span>&nbsp;java.util.concurrent.TimeUnit;<br />
<br />
<span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.client.config.RequestConfig;<br />
<span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.impl.client.CloseableHttpClient;<br />
<span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.impl.client.HttpClients;<br />
<span style="color: #0000FF; ">import</span>&nbsp;org.apache.http.impl.conn.PoolingHttpClientConnectionManager;<br />
<span style="color: #0000FF; ">import</span>&nbsp;org.springframework.context.annotation.Bean;<br />
<span style="color: #0000FF; ">import</span>&nbsp;org.springframework.context.annotation.Configuration;<br />
<br />
<br />
@Configuration<br />
<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;HttpClientConfiguration&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;PoolingHttpClientConnectionManager&nbsp;poolingHttpClientConnectionManager()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PoolingHttpClientConnectionManager&nbsp;result&nbsp;=&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;PoolingHttpClientConnectionManager(5,&nbsp;TimeUnit.MINUTES);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.setMaxTotal(20);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.setDefaultMaxPerRoute(20);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;result;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;RequestConfig&nbsp;requestConfig(KycProperties&nbsp;kycProperties)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;RequestConfig<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.custom()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectionRequestTimeout(kycProperties.getHttpConnectionTimeout())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectTimeout(kycProperties.getHttpConnectionTimeout())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setSocketTimeout(kycProperties.getHttpConnectionTimeout())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.build();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Bean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;CloseableHttpClient&nbsp;httpClient(PoolingHttpClientConnectionManager&nbsp;poolingHttpClientConnectionManager,&nbsp;RequestConfig&nbsp;requestConfig)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;HttpClients<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.custom()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setConnectionManager(poolingHttpClientConnectionManager)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setDefaultRequestConfig(requestConfig)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.build();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}</div>
<br />
Troubleshooting Spring's RestTemplate Requests Timeout<br />
<a href="https://tech.asimio.net/2016/12/27/Troubleshooting-Spring-RestTemplate-Requests-Timeout.html" target="_blank">https://tech.asimio.net/2016/12/27/Troubleshooting-Spring-RestTemplate-Requests-Timeout.html</a>
a<br /><br />httpclient超时重试记录<br /><a href="https://blog.csdn.net/wanghao112956/article/details/102967930" target="_blank">https://blog.csdn.net/wanghao112956/article/details/102967930</a><img src ="http://www.blogjava.net/paulwong/aggbug/435757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2020-12-29 09:36 <a href="http://www.blogjava.net/paulwong/archive/2020/12/29/435757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深入浅出 Retrofit，这么牛逼的框架你们还不来看看？</title><link>http://www.blogjava.net/paulwong/archive/2020/09/16/435663.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 16 Sep 2020 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2020/09/16/435663.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435663.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2020/09/16/435663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435663.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435663.html</trackback:ping><description><![CDATA[<a href="https://segmentfault.com/a/1190000005638577" target="_blank">https://segmentfault.com/a/1190000005638577</a><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/435663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2020-09-16 09:41 <a href="http://www.blogjava.net/paulwong/archive/2020/09/16/435663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTTPCLIENT之COOKIE资源</title><link>http://www.blogjava.net/paulwong/archive/2013/03/31/397191.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 31 Mar 2013 01:18:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/03/31/397191.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/397191.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/03/31/397191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/397191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/397191.html</trackback:ping><description><![CDATA[<div><div>Get Cookie value and set cookie value</div><a target="_blank" href="http://www.java2s.com/Code/Java/Apache-Common/GetCookievalueandsetcookievalue.htm">http://www.java2s.com/Code/Java/Apache-Common/GetCookievalueandsetcookievalue.hm</a><br /><br /><div>How can I get the cookies from HttpClient?</div><a target="_blank" href="http://stackoverflow.com/questions/8733758/how-can-i-get-the-cookies-from-httpclient">http://stackoverflow.com/questions/8733758/how-can-i-get-the-cookies-from-httpclient</a><br /><br />HttpClient 4.x how to use cookies?<br /><a href="http://stackoverflow.com/questions/8795911/httpclient-4-x-how-to-use-cookies" target="_blank">http://stackoverflow.com/questions/8795911/httpclient-4-x-how-to-use-cookies</a><br /><br />Apache HttpClient 4.0.3 - how do I set cookie with sessionID for POST request<br /><a target="_blank" href="http://stackoverflow.com/questions/4166129/apache-httpclient-4-0-3-how-do-i-set-cookie-with-sessionid-for-post-request">http://stackoverflow.com/questions/4166129/apache-httpclient-4-0-3-how-do-i-set-cookie-with-sessionid-for-post-request</a><br /><br />!!HttpClient Cookies <br /><a target="_blank" href="http://blog.csdn.net/mgoann/article/details/4057064">http://blog.csdn.net/mgoann/article/details/4057064</a><br /><br />Chapter 3. HTTP state management<br /><a href="http://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html" target="_blank">http://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html</a><br /><br />!!!contact-list类库依赖包之commons-httpclient<br /><a target="_blank" href="http://flyerhzm.github.com/2009/08/23/contact-list-library-dependencies-of-commons-httpclient/">http://flyerhzm.github.com/2009/08/23/contact-list-library-dependencies-of-commons-httpclient/</a></div><img src ="http://www.blogjava.net/paulwong/aggbug/397191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-03-31 09:18 <a href="http://www.blogjava.net/paulwong/archive/2013/03/31/397191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>伪造IP、COOKIE的那些事</title><link>http://www.blogjava.net/paulwong/archive/2013/03/28/397095.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 28 Mar 2013 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/03/28/397095.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/397095.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/03/28/397095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/397095.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/397095.html</trackback:ping><description><![CDATA[<a href="http://www.udpwork.com/item/8135.html" target="_blank">http://www.udpwork.com/item/8135.html<br />
<br />
</a><a href="http://wangjinyang.blog.sohu.com/101351399.html" target="_blank">http://wangjinyang.blog.sohu.com/101351399.html<br />
</a><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/397095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-03-28 11:17 <a href="http://www.blogjava.net/paulwong/archive/2013/03/28/397095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSOUP资源</title><link>http://www.blogjava.net/paulwong/archive/2013/03/24/396917.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 24 Mar 2013 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/03/24/396917.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/396917.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/03/24/396917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/396917.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/396917.html</trackback:ping><description><![CDATA[网页解释用的。<br /><br /><a href="http://my.oschina.net/dfsfsdf/blog/116279" target="_blank">http://my.oschina.net/dfsfsdf/blog/116279</a><img src ="http://www.blogjava.net/paulwong/aggbug/396917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-03-24 11:46 <a href="http://www.blogjava.net/paulwong/archive/2013/03/24/396917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Httpclient资源</title><link>http://www.blogjava.net/paulwong/archive/2013/03/01/395946.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 01 Mar 2013 10:11:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/03/01/395946.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/395946.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/03/01/395946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/395946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/395946.html</trackback:ping><description><![CDATA[<a href="http://www.cnblogs.com/wasp520/archive/2012/06/28/2568897.html" target="_blank">http://www.cnblogs.com/wasp520/archive/2012/06/28/2568897.html</a>
<div><br />
</div>
<div><br />
</div>
<div><a href="http://rensanning.iteye.com/blog/1550436" target="_blank">http://rensanning.iteye.com/blog/1550436</a></div>
<div><br />
</div>
<div><br />
</div>
<div><a href="http://blog.csdn.net/madding/article/details/7638807" target="_blank">http://blog.csdn.net/madding/article/details/7638807<br />
<br />
<br />
</a>抓来的内容当然要提取了：<br />
<br />
<a href="http://www.oschina.net/p/jsoup" target="_blank">http://www.oschina.net/p/jsoup<br />
</a><br />
<a href="http://www.oschina.net/p/htmlparser" target="_blank">http://www.oschina.net/p/htmlparser</a><br />
</div>
<br /><a target="_blank" href="http://www.open-open.com/jsoup/">http://www.open-open.com/jsoup/
</a><img src ="http://www.blogjava.net/paulwong/aggbug/395946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-03-01 18:11 <a href="http://www.blogjava.net/paulwong/archive/2013/03/01/395946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>