Android中访问网络用的是HttpClient的方式,即Apache提供的一个jar包。安卓中继承了改jar包,所以安卓adt中不需要专门import该jar,直接就可以使用。

以下是MainActivity.java代码:

package com.wyl.httptest2;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;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.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends ActionBarActivity {Button btn;EditText et;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button)findViewById(R.id.btnId);MyOnclickListener l = new MyOnclickListener();et = (EditText)findViewById(R.id.editTextId);btn.setOnClickListener(l);//绑定监听器}class MyOnclickListener implements OnClickListener{@Overridepublic void onClick(View v) {//原则:UI中的主线程不能够直接访问网络System.out.println("====线程名:"+Thread.currentThread().getName());getInternetThread myThread = new getInternetThread();myThread.start();}}class getInternetThread extends Thread{String line = "我是空";@Overridepublic void run() {System.out.println("线程名:"+Thread.currentThread().getName());//获取EditText 控件里的 uriString uri = et.getText().toString();System.out.println("uri的值:"+uri);//访问网络//获取客户端对象HttpClient client = new DefaultHttpClient();//获取请求对象,并传入uriHttpGet get = new HttpGet(uri);//客户端发送请求对象try {HttpResponse resp = client.execute(get);//获取状态码,如果是200说明成功int code = resp.getStatusLine().getStatusCode();if(code == 200){//获得返回值InputStream in = resp.getEntity().getContent();BufferedReader reader = new BufferedReader(new InputStreamReader(in));line = reader.readLine();}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}et.setText(line);//设置EditText的值,这个地方会导致程序的崩溃,猜测是workThread不能够直接修改主线程即安卓UI中的数据。}}}

  安卓的页面如下:

Android访问网络_第1张图片

更多相关文章

  1. Android Widget 中ListView加载网络图片
  2. Java(Android)线程池
  3. Android五大布局对象
  4. android 线程间通信
  5. Android 多线程注意事项
  6. Android 利用发送Intent播放本地视频和网络视频
  7. Android 学习笔记 Thread (一) android线程

随机推荐

  1. android-Handler源码解析
  2. Android 平台架构
  3. android 获取listview checkbox选择的值
  4. android性能优化(一)内存管理
  5. Android 基础面试题目
  6. 最全的Android项目结构以及功能
  7. Android去除EditText的聚焦Focuse
  8. Android(安卓)安卓微信分享
  9. Android ActionBar的源代码分析(二)
  10. Android活动Acitivity启动模式之singleTa