这是一个MainActivity.java
package com.example.test001; import java.io.IOException; import java.io.InputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpRequest; 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.os.Bundle; import android.os.Handler; import android.os.Message; import android.R.id; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private Button btn1; private TextView tv1; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button)super.findViewById(R.id.button1); tv1 = (TextView)super.findViewById(R.id.textView1); handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: String info = (String)msg.obj; tv1.setText(info); break; } } }; btn1.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { new Thread(new Runnable() { public void run() { //new一个HttpClient HttpClient httpClient = new DefaultHttpClient(); //创建一个get请求:地址为:http://www.baidu.com HttpGet httpGet = new HttpGet("http://www.baidu.com"); try { //执行get请求,得到服务器响应 HttpResponse response = httpClient.execute(httpGet); //判断响应码是否为200 if(response.getStatusLine().getStatusCode() == 200){ //从响应中读出实体 HttpEntity entity = response.getEntity(); //读出实体的内容 InputStream iis = entity.getContent(); //把内容转化为字符流 byte[] result = IOUtil.read(iis); String s = new String(result); Message m = new Message(); m.what = 1; m.obj = s; handler.sendMessage(m); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
这是一个对流的处理的帮助类:IOUtil.java
package com.example.test001; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; public class IOUtil { public static byte[] read(InputStream inputStream){ byte[] buffer = new byte[1024]; int length = 0; ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { while ((length = inputStream.read( buffer,0,buffer.length)) != -1){ baos.write(buffer,0,length); inputStream.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return baos.toByteArray(); } }