Httpclient之网络请求数据

来源:互联网 发布:知乎 招聘 编辑:程序博客网 时间:2024/04/29 22:36
package httpclent.com.example.httpclent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;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 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 java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;public class MainActivity extends AppCompatActivity {    Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what){                case 0:                    String ss = (String) msg.obj;                    Gson gson = new Gson();                    Info info = gson.fromJson(ss, Info.class);                    final List<Info.DataBean.EssayBean> essay = info.getData().getEssay();                    List<Info.DataBean.QuestionBean> question = info.getData().getQuestion();                    for (int i = 0; i < question.size(); i++) {                        String answer_title = question.get(i).getAnswer_title();                        Toast.makeText(MainActivity.this, ""+answer_title, Toast.LENGTH_SHORT).show();                    }                    lv.setAdapter(new BaseAdapter() {                        @Override                        public int getCount() {                            return essay.size();                        }                        @Override                        public Object getItem(int position) {                            return essay.get(position);                        }                        @Override                        public long getItemId(int position) {                            return 0;                        }                        @Override                        public View getView(int position, View convertView, ViewGroup parent) {                            convertView = View.inflate(MainActivity.this,R.layout.item,null);                            TextView t = (TextView) convertView.findViewById(R.id.t);                            t.setText(essay.get(position).getHp_title());                            return convertView;                        }                    });                    break;            }        }    };    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(new Runnable() {            @Override            public void run() {                //创建请求                HttpClient httpClient = new DefaultHttpClient();                //设置请求方式                HttpGet httpGet = new HttpGet("http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android");                try {                    //关联                    HttpResponse respoonse = httpClient.execute(httpGet);                    //判断状态行状态吗是佛为200                    if (respoonse.getStatusLine().getStatusCode()==200) {                        //获取实体内容                        InputStream content = respoonse.getEntity().getContent();                        //读取                        ByteArrayOutputStream outputStream =new ByteArrayOutputStream();                        byte [] buffer =new byte[1024];                        int len=0;                        while((len=content.read(buffer))!=-1) {                            outputStream.write(buffer, 0, len);                        }                        //读取完毕                        String s = outputStream.toString();                 //主线程更新UI                        Message message = handler.obtainMessage(0, s);                        message.sendToTarget();                    }                } catch (IOException e) {                    e.printStackTrace();                }            }        }).start();    }}
0 0