HttpClient请求

来源:互联网 发布:java 面试常见问题 编辑:程序博客网 时间:2024/05/16 05:10
package com.bwei.httpclient;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.List;

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

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class MainActivity extends Activity {
    private List<Bean> list;
    
    private Handler handler = new Handler(){
        
        

        public void handleMessage(android.os.Message msg) {
            
            String json = (String) msg.obj;
            
            
            Toast.makeText(MainActivity.this, json, 0).show();
            
            Gson gson = new Gson();
            
            list = gson.fromJson(json, new TypeToken<List<Bean>>() {
            }.getType());
            
            
            
            
            
            lv.setAdapter(new MyAdapter());
        };
    };
    private ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        lv = (ListView) findViewById(R.id.lv);
        new Thread(){
            public void run() {
                String data = getData();
                
                Message msg = new Message();
                msg.obj = data;
                
                handler.sendMessage(msg);
            };
            
        }.start();
        
        
        
    }

    
    /*
     * 获得数据
     */
    private String getData() {
        
        String path ="http://169.254.135.196:8080/aa.json";
        //String path ="http://www.meirixue.com/api.php?c=index&a=index";
        //创建出HttpClient对像
        HttpClient client = new DefaultHttpClient();
        
        HttpGet get = new HttpGet(path);
        try {
            HttpResponse response = client.execute(get);
            //状态码
            int statusCode = response.getStatusLine().getStatusCode();
            
            if(statusCode==200){
                //服务器返回来的流
                InputStream is = response.getEntity().getContent();
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                
                int len;
                byte[] arr = new byte[1024*20];
                
                while((len=is.read(arr))!=-1){
                    baos.write(arr, 0, len);
                }
                
                return baos.toString();
            }
            
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return null;
        
    }



    class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            
            TextView tv = new TextView(MainActivity.this);
            tv.setText(list.get(position).name);
            return tv;
        }
        
        
    }
    

}



bean类

package com.bwei.httpclient;

public class Bean {
    
    public int age;
    public String name;
    
    

}



原创粉丝点击