错误连接被拒绝

我想做一个Http连接到我自己的servlet。 这是我的代码:

try { HttpClient client = new DefaultHttpClient(); HttpPost httpMethod = new HttpPost("http://localhost:8080/getHeader/HeaderServlet"); httppost.setHeader("Content-Type", "application/x-www-form-urlencoded"); ResponseHandler<String> responseHandler = new BasicResponseHandler(); String response = client.execute(httppost, responseHandler); String result = response.toString(); } 

但我无法,我得到的错误:

 org.apache.http.conn.HttpHostConnectionException:Connection to http://localhost:8080 refused 

我会感谢你的帮助

使用10.0.2.2而不是localhost

如果从设备引用localhost而不是使用http://10.0.2.2/而不是http://127.0.0.1/http://localhost/

由于您的Android模拟器正在Virtual Machine(QEMU)上运行,并且无法连接到您的PC上直接运行的服务器。

所以你的代码片段将是这样的:

 HttpPost httpMethod = new HttpPost("http://10.0.2.2:8080/getHeader/HeaderServlet"); 

请参考: Emulator Networking了解更多信息。

我喜欢你有这个问题,但我通过在下面的标签说,解决了它

 <uses-permission android:name="android.permission.INTERNET" /> 

这使我可以连接到互联网。 我希望你能学习我的解决scheme

更好的是,你把你的PC局域网的IP,例如,在Windows中,在cmd控制台中运行“ipconfig”,假设你的IP是:192.168.1.34,那么

 HttpPost httpMethod = new HttpPost("http://192.168.1.34:8080/getHeader/HeaderServlet"); 

localhost将是Android设备本身。 我假设这不是你的servlet的地方。 您需要input您的servlet所在的主机名或IP。

(如果它真的在您的设备上(为什么?!),那么您需要确保您具有INTERNET权限,您可以尝试从内置的浏览器进行连接。)

对我来说,通过从gradle.properties中删除proxyHost,proxyPort等来解决问题