我正在使用java.net.HttpURLConnection
调用GET方法。我遇到错误“连接被拒绝”
我正在打电话给http://192.168.1.5:8038/GetStudent
因此想了解我是否需要在客户端OS中打开PORT 8038?
我很困惑,因为默认情况下HTTP监听80,并且它是OPEN。
我知道在服务器端8038应该是打开的
最佳答案
您需要确定服务器在哪个端口上运行,因为在URL中,部分: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");
关于java - HTTP URL连接是否需要在客户端打开PORT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30365134/