HttpHostConnectException与NetworkOnMainThreadException

今天用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规范。也会造成用户界面卡死的现象。



你可能感兴趣的:(HttpHostConnectException与NetworkOnMainThreadException)