错误连接被拒绝
我想做一个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等来解决问题