【发布时间】:2014-09-20 01:41:40
【问题描述】:
我知道关于这个主题有几个问题,但我没有在其中任何一个中找到答案。
我正在尝试打开与本地服务器的连接,但连接一直被拒绝。
我的服务器正在运行,我测试了与浏览器和一个名为 Postman 的 Google 应用的连接,它可以正常工作。
打开连接时失败,好像没有什么可以连接的。或者可能有什么东西阻止了连接?我测试了防火墙和杀毒软件,没有运气。
在 Postman 中测试 URL 会返回一个用户,因为它应该......
如果我将 url 替换为“http://www.google.com”就可以了。
这是我的代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
*
* @author Gabriel
*/
public class HttpConnection {
public HttpConnection() {
}
public void makeRequest() throws MalformedURLException, IOException {
String url = "http://localhost:8000/users/1";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36");
con.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
con.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.8,es;q=0.6");
con.setRequestProperty("Connection", "keep-alive");
con.setRequestProperty("Host", "localhost:8000");
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());
}
}
【问题讨论】:
-
浏览器与您运行 Java 的计算机位于同一台计算机上?
-
是的......我猜是有什么东西阻止了 Java 打开本地连接:P
-
好的,我试过只连接到localhost,它可以工作,问题是localhost:8000:p 我不知道为什么
-
由于某种原因,当我尝试连接到端口 8000 时,连接被拒绝
-
这意味着您的网络服务器没有在 8000 端口上运行。您可以从浏览器访问相同的 url 吗?
标签: java httpconnection