Apache HttpClient ????????????time out????????????????????????????????????-??????-????????????-?????????
update 2014-5-18???
????????????????????????HttpClient????????????????????????socket read?????????????????????
???jstack -l pid ???????????????????????????????????????????????????????????????????????????thread dump???????????????????????????????????????????????????????????????????????????????????????????????????
"org.springframework.jms.listener.DefaultMessageListenerContainer#7-1" prio=10 tid=0x00007f345127d800 nid=0x5b4f0 runnable [0x00007f34753d1000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130) at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:127) at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:233) at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:220) at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:183) at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:152) at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:138) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) - locked <0x000000070346ce70> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.Reader.read(Reader.java:140) at org.apache.http.util.EntityUtils.toString(EntityUtils.java:161)
??????????????????????????????JMS????????????http????????????????????????????????????http????????????????????????????????????????????????????????????
----------------------------------------------
?????????????????????????????????Http + json????????????????????????????????????
Apache HttpClient?????????????????????Java http??????????????????????????????????????????Apache HttpClient???????????????????????????????????????????????????????????????HttpClient??????????????????????????????????????????????????????????????????????????????????????????????????????????????????nginx???????????????hessian????????????????????????
??????Http Client?????????SO_TIMEOUT???0?????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????Http???????????????????????????????????????????????????
Apache HttpClient??????????????????????????????TimeOut?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????time out ????????????
httpClient = new DefaultHttpClient(); httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_LINGER, value) httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 3000); httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 3000);
SO_LINGER???????????????????????????????????????????????????
https://unliminet.blog.51cto.com/380895/346686
https://stackoverflow.com/questions/3757289/tcp-option-so-linger-zero-when-its-required
最後更新:2017-04-03 12:56:20