我在 Search for my website 上有一个 Auto Complete / type ahead 功能。我看到有一段时间他们是与之相关的异常。我们正在使用服务器。
org.apache.http.conn.HttpHostConnectException: Connection to http://proxy.xyz.com:60 refused
at org.apache.http.impl.conn.DefaultConnectionOperator.openConnection(DefaultConnectionOperator.java:159)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttp.execute(AbstractHttp.java:641)
at org.apache.http.impl.client.AbstractHttp.execute(AbstractHttp.java:576)
at org.apache.http.impl.client.AbstractHttp.execute(AbstractHttp.java:554)
at com..dd.sone.integration.SearchDAO.getJSONData(SearchDAO.java:60)
at com..dd.sone.integration.SearchDAO.searchAutoCompleteResults(SearchDAO.java:560)
at com..dd.sone.presentation.util.SearchAutoCompleteUtil.doGet(SearchAutoCompleteUtil.java:26)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:845)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:352)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:236)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1512)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)
导致:java.net.ConnectException:连接被拒绝
这里是我如何编码
public HashMap<String, Object> getJSONData(String url)throws Exception {
DefaultHttp http = new DefaultHttp();
HttpParams params = http.getParams();
try {
HttpConnectionParams.setConnectionTimeout(params, 10000);
HttpConnectionParams.setSoTimeout(params, 10000);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
HttpHost proxy = new HttpHost(proxy.xyz.com, 60);
ConnRouteParams.setDefaultProxy(params, proxy);
URI uri;
InputStream data = null;
uri = new URI(url);
HttpGet method = new HttpGet(uri);
HttpResponse response=null;
try {
response = http.execute(method);
}catch(Exception e) {
e.printStackTrace();
throw e;
}
data = response.getEntity().getContent();
Reader r = new InputStreamReader(data);
HashMap<String, Object> jsonObj = (HashMap<String, Object>) GenericJSONUtil.fromJson(r);
return jsonObj;
}
任何一个可以告诉我为什么我得到这个异常只有一段时间?这是可能的,这个异常是造成当搜索请求从 Android 应用程序,因为我们的网站不支持从 Android 应用程序的请求
当您尝试打开到当前没有任何连接的 IP 地址 / 端口的 TCP 连接时,会发生“连接拒绝”错误。如果没有任何东西在,则服务器端的操作系统“拒绝”连接。
如果这是间歇性发生的,那么最有可能的解释是(IMO):
您正在谈论的服务器(“proxy.xyz.com”/ 端口 60)正在上升和下降,或者
有一些1在您的客户端和之间,间歇性地将请求发送到不起作用的主机或其他东西。
这是可能的,当搜索请求从 Android 应用程序,因为我们的网站不支持正在从 Android 应用程序的请求引起此异常。
似乎不太可能。您说“连接拒绝”异常消息说是拒绝连接,而不是您的服务器。此外,如果服务器不打算处理某些类型的请求,它仍然必须接受 TCP 连接以找出请求是什么...在它可以拒绝它之前。
1-例如,它可能是一个 DNS,循环将 DNS 名称解析为不同的 IP 地址。或者它可能是一个基于 IP 的负载均衡器。
在我的情况下,问题是 HTTP URL 中缺少 's'。错误是:“HttpHostConnectException:连接到 someendpoint.com:80 [someendpoint.com / 127.0.0.1] 失败:连接被拒绝”端点和 IP 显然已更改以保护网络。
您必须在某些时候为 gradle 设置服务器,您可以尝试更改 gradle.properties 中的服务器 IP地址。gradle 文档
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(36条)