上周五夜間,服務端程式發版期間,客戶端程式在通過http呼叫服務端介面時出現一堆 “拒絕連接 (Connection refused) ” 例外,
2022-04-08 22:22:28,676 ERROR [2022040822222771523885] ? (com.cn.yft.pay.util.HttpClientHelper:) - 請求urlParam 例外: org.apache.http.conn.HttpHostConnectException: Connect to 123.56.223.21:8280 [/123.56.223.21] failed: 拒絕連接 (Connection refused) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.client.InternalHttpClient.doExecute$original$szvaDZwu(InternalHttpClient.java:184) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.client.InternalHttpClient.doExecute$original$szvaDZwu$accessor$2wpTSoQJ(InternalHttpClient.java) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.client.InternalHttpClient$auxiliary$f5vLomHg.call(Unknown Source) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86) ~[skywalking-agent.jar:8.6.0] at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) ~[httpclient-4.5.2.jar:4.5.2] at com.cn.yft.pay.util.HttpClientHelper.httpClientPost(HttpClientHelper.java:506) [pctrans-core-0.0.1-SNAPSHOT.jar:?] at com.cn.yft.bank.p600001.own.PaymentTransByOWN.doBusiness$original$a5alvy8U(PaymentTransByOWN.java:150) [pctrans-core-0.0.1-SNAPSHOT.jar:?] at com.cn.yft.bank.p600001.own.PaymentTransByOWN.doBusiness$original$a5alvy8U$accessor$RlW8FGim(PaymentTransByOWN.java) [pctrans-core-0.0.1-SNAPSHOT.jar:?] at com.cn.yft.bank.p600001.own.PaymentTransByOWN$auxiliary$GTU0SZKs.call(Unknown Source) [pctrans-core-0.0.1-SNAPSHOT.jar:?] at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86) [skywalking-agent.jar:8.6.0] at com.cn.yft.bank.p600001.own.PaymentTransByOWN.doBusiness(PaymentTransByOWN.java) [pctrans-core-0.0.1-SNAPSHOT.jar:?] at com.cn.yft.pay.service.PCPaymentRunnable.run(PCPaymentRunnable.java:50) [pctrans-core-0.0.1-SNAPSHOT.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_191] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_191] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191] Caused by: java.net.ConnectException: 拒絕連接 (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_191] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_191] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_191] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_191] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_191] at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_191] at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74) ~[httpclient-4.5.2.jar:4.5.2] at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141) ~[httpclient-4.5.2.jar:4.5.2] ... 23 more
參考csdn上網友的Connection refused: connect問題解決方案集合,整理一下http呼叫出現connection refused例外的各種情況:
客戶端:
- 寫錯了主機和埠
- 通信協議不正確,http://,https://,rmi://
- 客戶端服務不在網路中,它可能沒有連接到LAN或互聯網或任何其他網路,
- 客戶端網路防火墻攔截請求
服務端:
- 服務掛掉了 / 服務未運行
- 服務在重啟中 / 服務處于kill -15程序中
- 服務端網路防火墻攔截請求
- 服務端服務不在網路中,它可能沒有連接到LAN或互聯網或任何其他網路,
- 服務器正在運行但沒有偵聽埠,或者服務器正在運行但是正在偵聽不同的埠,
簡單測驗一下上面的幾種情況,結論是:上面總結的幾種情況并不都回傳connection refused例外,至少如下幾種不是,
我司公司網路限制訪問淘寶、優酷等視頻購物網站,就拿訪問淘寶網(https://www.taobao.com)來說, 我們來 curl https://www.taobao.com 或 curl http://www.taobao.com
C:\Users\zhangguozhan>curl https://www.taobao.com
curl: (35) schannel: next InitializeSecurityContext failed: SEC_E_INVALID_TOKEN (0x80090308) - 給函式提供的標志無效
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" / ><title>Forbidden</title> </head> <body> 你被禁止訪問這個網站,請聯系網站管理員! </body> </html>
把網路切換成自己手機的4G,再 curl https://www.taobao.com/, 此時可以正常回傳回應結果,

然后,自己手機4G情況下,把上面的https換成http, 即, 此時,回傳的是我們熟知的301(重定向)錯誤,
C:\Users\zhangguozhan>curl http://www.taobao.com <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head><title>301 Moved Permanently</title></head> <body> <h1>301 Moved Permanently</h1> <p>The requested resource has been assigned a new permanent URI.</p> <hr/>Powered by Tengine</body> </html>
以上,做個記錄,方便日后作業中查證,
當看到一些不好的代碼時,會發現我還算優秀;當看到優秀的代碼時,也才意識到持續學習的重要!--buguge
本文來自博客園,轉載請注明原文鏈接:https://www.cnblogs.com/buguge/p/16131714.html
<style>hr.signhr{width:80%;margin:0 auto;border: 0;height: 4px;background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0))}</style>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457998.html
標籤:其他
