我试图通过WiFi从Android设备访问本地Web服务器,我可以通过浏览器从我的笔记本电脑访问,或使用curl。我也可以在Android设备浏览器上访问服务器。
我用来访问服务器的代码会产生“连接拒绝”异常。
这是代码:
public void getController1() {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://192.168.1.169:8000");
HttpResponse response = null;
System.out.println(httpget.toString());
try {
response= httpclient.execute(httpget);
txtViewStatus.setText("Controller 1 - OK"+response);
} catch(Exception e) {
e.printStackTrace();
txtViewStatus.setText("Controller 1 - Error"+e);
}
}
答案 0 :(得分:25)
问题解决了。问题是损坏的清单文件。我删除了权限行并重新键入它们,现在问题已经消失
答案 1 :(得分:8)
我没有得到许可;你应该检查清单文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
答案 2 :(得分:4)
检查您的互联网连接强度。
对于我的情况,网络连接很低,因此抛出此错误。
答案 3 :(得分:3)
将此文件发送到您的清单文件:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 4 :(得分:1)
是不是因为你在使用代理?代理问题在Android HttpClient Doesn't Use System Proxy Settings中讨论(参见CommonsWare的回答)。
答案 5 :(得分:0)
你应该在android设备中启用pc套件:
1: set http url in android app e.g ("http://192.168.1.100:81/api/droid/getdata")
laptop or pc wifi ip is (192.168.1.100)
2: connect android device to pc or laptop in usb port
3: goto this setting in android device setting -> more -> Tethering and portable hotspot -> pc suite(HiSuite)
4: run android app
这项工作很好