【问题标题】:Does HTTP Url connection require PORT opening in client sideHTTP Url 连接是否需要在客户端打开 PORT
【发布时间】:2015-05-21 05:18:16
【问题描述】:

我正在使用 java.net.HttpURLConnection 调用 GET 方法。我遇到了错误“连接被拒绝”

我打电话给http://192.168.1.5:8038/GetStudent

所以想了解我需要在客户端操作系统中打开 PORT 8038 吗? 我很困惑,因为 HTTP 默认监听 80 并且是 OPEN。

我知道在服务器端 8038 应该是打开的

【问题讨论】:

  • 您的 Web 服务器运行在 8038 端口,例如,默认情况下,大多数 Web 服务器运行在 8080 端口或 weblogic 运行在 7001 端口,但有些人可能会更改 Web 服务器的默认值并对其进行配置在端口 8038 上。通常在开发过程中服务器没有在端口 80 上运行,而在您的生产服务器上,您将其更改为端口 80,因此在您的情况下,您应该首先检查是否可以连接到服务器的端口 8038(使用 telnet 等命令)和如果可以,可能是因为您的 Web 应用程序未部署在服务器上,您会收到此错误
  • 确保服务器的防火墙允许端口 8038 上的传入连接,并且服务器实际上已启动并侦听该端口。如果您的服务器是基于 *nix 的,您可以使用此命令检查进程侦听 8038 netstat -tulpn | grep :8038
  • 我已经从另一台机器和浏览器进行了测试,我能够从 192.168.1.5:8038/GetStudent 获得结果,但是当我在我的机器中使用我的代码运行相同的结果时,我没有得到结果

标签: java get port httpurlconnection firewall


【解决方案1】:

您需要确定您的服务器在哪个端口上运行,因为在您的 url 中,部分 :8083 表示您尝试连接到服务器端口 8083,而不是 80。如果您未指定端口,则默认是 80。也许服务器没有在这个端口(8083)上运行,或者可能有防火墙阻止通信?通常不需要在客户端设置传出端口。当存在未知的用户代理属性时,服务器可能会拒绝。尝试设置用户代理属性,如下例所示:

        String url = "https://translate.google.pl/translate_a/single?client=t&sl=ro&tl=pl&hl=pl&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=4&tsel=3&kc=1&tk=521057|406131&q=";
        url = url + URLEncoder.encode(text, "UTF-8");
        HttpsURLConnection con = (HttpsURLConnection) new URL(url)
                .openConnection();
        System.setProperty("http.agent", "");
        con.setRequestProperty(
                "User-Agent",
                "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
        // con.setha
        con.setDoInput(true);
        con.setDoOutput(true);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        int n;
        while ((n = con.getInputStream().read()) != -1) {
            baos.write(n);
        }
        ;

        String translatedText = new String(baos.toByteArray(), "UTF-8");

【讨论】:

  • 我已经从另一台机器和浏览器进行了测试,我能够从 192.168.1.5:8038/GetStudent 获得结果,但是当我在我的机器中使用我的代码运行相同的结果时,我没有得到结果
  • 你的机器和服务器在同一个子网吗?
  • 帮帮忙,你自己的IP是多少?
  • 是同一个子网,我朋友的IP是192.168.1.70,我的IP是192.168.1.45
猜你喜欢
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多