【问题标题】:java - can't make http request on port other than 80java - 不能在 80 以外的端口上发出 http 请求
【发布时间】:2011-10-07 14:39:48
【问题描述】:

我的 java 程序正在点击 "http://url:port" 类型的 url 来获取一些数据。在我部署在 tomcat 6 上的本地 Windows 机器上,它工作正常。但是在生产上是一台装有tomcat 6的linux机器上,它给了我连接超时。

具有讽刺意味的是,如果我点击没有端口号的 URL,它将成功地为我带来输出,但不带端口。找不到任何线索,请帮忙。

我用来连接和获取数据的代码的 sn-p 是:

HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("59.162.167.36:80/api/…");
httpget.setHeader("User-Agent", "UserAgent: Mozilla/5.0");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();

【问题讨论】:

  • 你能告诉我们你用来连接的代码吗?
  • 假设你的 tomcat 6 配置是相同的(即都绑定到同一个端口),那么这听起来像是防火墙问题。
  • url-url:80也报错吗?
  • 尝试{ HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("59.162.167.36:80/api/…); httpget.setHeader("User-Agent", "UserAgent: Mozilla/5.0"); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity();

标签: java http url port


【解决方案1】:

一个明显的可能性是生产机器前面的防火墙阻止了对该端口的访问。检查防火墙。

【讨论】:

    【解决方案2】:

    答案很简单:在生产环境中,您没有打开该端口,请联系管理员或主机并提出您的问题。他们当然会证实我的论文。

    【讨论】:

      【解决方案3】:

      几乎可以肯定,您的托管服务提供商在数据中心实施了某种描述的防火墙。这是常见的做法。向他们发送一条消息,询问端口 X 是否被阻止,如果是,他们可以打开它。

      【讨论】:

        猜你喜欢
        • 2023-03-24
        • 1970-01-01
        • 2023-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-26
        • 2012-02-12
        • 2011-02-19
        相关资源
        最近更新 更多