HTTP Url连接是否需要在客户端打开PORT

时间:2015-05-21 05:18:16

标签: java get port httpurlconnection firewall

我正在使用java.net.HttpURLConnection调用GET方法。我面临错误"连接被拒绝"

我正在呼叫http://192.168.1.5:8038/GetStudent

所以想了解我是否需要在客户端操作系统中打开PORT 8038 ? 我感到很困惑,因为默认情况下,HTTP会监听80,哪些是OPEN。

据我所知,在服务器端8038应该是开放的

1 个答案:

答案 0 :(得分:1)

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

        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");