android.os.NetworkOnMainThreadException

package com.demo.clientdemo;

import java.io.IOException;
import java.io.InputStream;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.support.v7.app.ActionBarActivity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends ActionBarActivity {
private EditText et;
private ImageView iv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    et = (EditText) findViewById(R.id.et);
    iv = (ImageView) findViewById(R.id.iv);
}

public void click(View view) {

    String path = et.getText().toString().trim();
    //
    HttpClient client = new DefaultHttpClient();
    // 
    HttpGet httpGet = new HttpGet(path);
    try {
        HttpResponse response = client.execute(httpGet);
        int code = response.getStatusLine().getStatusCode();
        if (code == 200) {
            InputStream is = response.getEntity().getContent();
            final Bitmap bitmap = BitmapFactory.decodeStream(is);

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    iv.setImageBitmap(bitmap);
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}

}

界面
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.demo.clientdemo.MainActivity" >

<ImageView
    android:layout_weight="100"
    android:id="@+id/iv"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<EditText
    android:id="@+id/et"
    android:singleLine="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="http://img3.3lian.com/2006/013/02/059.jpg"
    android:hint="请出入url"
     />
 <Button
     android:onClick="click"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="浏览"
   />

发布后点击浏览要报错,大牛们帮忙看看怎么解决啊

两个问题
1、http访问需要在非UI线程上进行
2、界面更新需要在UI线程上进行

 public void click(View view) {

    String path = et.getText().toString().trim();
        new Thread(){ //http访问需要在非UI线程内,需要起thread线程或者asyctask方式也行。
          public void run(){
    //
    HttpClient client = new DefaultHttpClient();  
    // 
    HttpGet httpGet = new HttpGet(path);
    try {
        HttpResponse response = client.execute(httpGet);
        int code = response.getStatusLine().getStatusCode();
        if (code == 200) {
            InputStream is = response.getEntity().getContent();
            final Bitmap bitmap = BitmapFactory.decodeStream(is);

            runOnUiThread(new Runnable() {//runOnUiThread如果这是通过handle方式到ui线程更新,那没问题,否则需要通过handle方式发送信息进行更新
                @Override
                public void run() {
                    iv.setImageBitmap(bitmap);
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
        }
   }.start();
}
}

很简单的,android不允许主线程访问网络,以免主线程卡死

网络请求不能在主线程上执行,必须新开线程进行网络请求,再通过handlerMessage返回给主线程更新UI

注意UI的主线程使用,网络请求单起线程,异步刷新