今天用HttpClient来做post请求,一直报错。
首先是报错HttpHostConnectException: Connection to http://192.168.xx.xx refused
这个错误 需要把IP改为 http://10.0.2.2 就好了~ 这才是模拟器的网段。
也不能写位127.0.0.1 或者 localhost 这代表虚拟器自己。
----补充,如果还报错 你需要在配置文件 manifest.xml加入:
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" ></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" ></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ></uses-permission> <uses-permission android:name="android.permission.INTERNET" ></uses-permission> <uses-permission android:name="android.permission.WAKE_LOCK" ></uses-permission>
权限的允许。WIFI什么的可以删了
还一个错误:
项目是2.2开发 测试手机是android4.0时候提示 android.os.NetworkOnMainThreadException异常,原来在4.0中,访问网络不能在主程序中进行,有两个方法可以解决,一个是在主程序中增加:
new Thread(){
@Override
public void run(){
//你要执行的方法
//执行完毕后给handler发送一个空消息
handler.sendEmptyMessage(0);
}
}.start();
//定义Handler对象
private Handler handler =new Handler(){
@Override
//当有消息发送出来的时候就执行Handler的这个方法
public void handleMessage(Message msg){
super.handleMessage(msg);
//处理UI
}
};
如果把请求写在主进程,不符合android规范。也会造成用户界面卡死的现象。
转载于:https://blog.51cto.com/superfly81/1279036