网络请求

来源:互联网 发布:mac抹掉磁盘 编辑:程序博客网 时间:2024/06/06 00:07

第一周参考:

package com.example.yue3_zhoukao1lianxi;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
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.conn.ssl.AllowAllHostnameVerifier;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.DefaultedHttpContext;
import org.apache.http.util.EntityUtils;

import com.example.bean.Bean;
import com.example.bean.New;
import com.google.gson.Gson;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
List list = new ArrayList();
private ListView lv;
private ImageView img;
private Handler handler = new Handler() {

    public void handleMessage(android.os.Message msg) {        img.setImageBitmap((Bitmap) msg.obj);    };};@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    lv = (ListView) findViewById(R.id.lv);}// httpclient方式请求public void httpclientbtn(View v) {    MyTask2 myTask2 = new MyTask2();    myTask2.execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");}// httpurlcontent方式请求public void httpurlcontentbtn(View v) {    MyTask1 myTask1 = new MyTask1();    myTask1.execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");}// 异步加载2class MyTask2 extends AsyncTask<String, Void, String> {    private ProgressDialog pd2;    private String content;    @Override    protected String doInBackground(String... params) {        // TODO Auto-generated method stub        SSLSocketFactory.getSocketFactory().setHostnameVerifier(                new AllowAllHostnameVerifier());        // 1.创建出一个httpclient        HttpClient hc = new DefaultHttpClient();        // 2.创建httpget对象        HttpGet httpGet = new HttpGet(params[0]);        // 3.执行请求        try {            // 执行请求            HttpResponse response = hc.execute(httpGet);            // 得到结果码,并判断            int code = response.getStatusLine().getStatusCode();            if (code == 200) {                // 5.得到结果数据                HttpEntity entity = response.getEntity();                content = EntityUtils.toString(entity);            }        } catch (ClientProtocolException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return content;    }    @Override    protected void onPostExecute(String result) {        // TODO Auto-generated method stub        super.onPostExecute(result);        list.clear();        if (pd2 != null && pd2.isShowing()) {            pd2.dismiss();        }        Gson gson = new Gson();        Bean bean = gson.fromJson(result, Bean.class);        List<New> newslist = bean.getNewslist();        for (New new1 : newslist) {            String ctime = new1.getCtime();            String description = new1.getDescription();            String picUrl = new1.getPicUrl();            String title = new1.getTitle();            String url = new1.getUrl();            list.add(new New(ctime, description, picUrl, title, url));        }        Log.i("bbb", list.toString());        Myadapter myadapter = new Myadapter();        lv.setAdapter(myadapter);    }    @Override    protected void onPreExecute() {        // TODO Auto-generated method stub        super.onPreExecute();        pd2 = new ProgressDialog(MainActivity.this);        pd2.setProgressStyle(ProgressDialog.STYLE_SPINNER);        pd2.setMessage("正在请求,请等待。。。");        pd2.show();    }}// 异步加载1class MyTask1 extends AsyncTask<String, Void, String> {    private String streamtoString = "";    private ProgressDialog pd;    // 请求网络的代码    @Override    protected String doInBackground(String... params) {        // TODO Auto-generated method stub        try {            URL url = new URL(params[0]);            try {                HttpURLConnection openConnection = (HttpURLConnection) url                        .openConnection();                openConnection.setRequestMethod("GET");                openConnection.setReadTimeout(3000);                openConnection.setConnectTimeout(3000);                int responseCode = openConnection.getResponseCode();                if (responseCode == 200) {                    InputStream inputStream = openConnection                            .getInputStream();                    streamtoString = StreamtoString(inputStream);                    Log.i("zzz", streamtoString);                }            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } catch (MalformedURLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return streamtoString;    }    // 在执行操作之前    @Override    protected void onPreExecute() {        // TODO Auto-generated method stub        super.onPreExecute();        pd = new ProgressDialog(MainActivity.this);        pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);        pd.setMessage("正在请求,请等待。。。");        pd.show();    }    // 在执行操作之后    @Override    protected void onPostExecute(String result) {        // TODO Auto-generated method stub        super.onPostExecute(result);        list.clear();        if (pd != null && pd.isShowing()) {            pd.dismiss();        }        Gson gson = new Gson();        Bean bean = gson.fromJson(streamtoString, Bean.class);        List<New> newslist = bean.getNewslist();        for (New new1 : newslist) {            String ctime = new1.getCtime();            String description = new1.getDescription();            String picUrl = new1.getPicUrl();            String title = new1.getTitle();            String url = new1.getUrl();            list.add(new New(ctime, description, picUrl, title, url));        }        Myadapter myadapter = new Myadapter();        lv.setAdapter(myadapter);    }}// 将流转换成Stringprivate String StreamtoString(InputStream inputStream) {    // TODO Auto-generated method stub    BufferedReader reader = new BufferedReader(new InputStreamReader(            inputStream));    String con;    StringBuilder builder = new StringBuilder();    try {        while ((con = reader.readLine()) != null) {            builder.append(con);        }        reader.close();    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    return builder.toString();}// 适配数据class Myadapter extends BaseAdapter {    @Override    public int getCount() {        // TODO Auto-generated method stub        return list.size();    }    @Override    public Object getItem(int arg0) {        // TODO Auto-generated method stub        return list.get(arg0);    }    @Override    public long getItemId(int position) {        // TODO Auto-generated method stub        return position;    }    @Override    public View getView(final int position, View convertView,            ViewGroup parent) {        // TODO Auto-generated method stub        View view = View.inflate(MainActivity.this, R.layout.item_list,                null);        img = (ImageView) view.findViewById(R.id.img);        TextView little = (TextView) view.findViewById(R.id.little);        TextView time = (TextView) view.findViewById(R.id.time);        new Thread() {            public void run() {                qingqiupic(list.get(position).getPicUrl());            };        }.start();        little.setText(list.get(position).getTitle());        time.setText(list.get(position).getCtime());        return view;    }    // 请求图片    private void qingqiupic(String picUrl) {        // TODO Auto-generated method stub        try {            URL url = new URL(picUrl);            try {                HttpURLConnection openConnection = (HttpURLConnection) url                        .openConnection();                openConnection.setRequestMethod("GET");                openConnection.setReadTimeout(3000);                openConnection.setConnectTimeout(3000);                int responseCode = openConnection.getResponseCode();                if (responseCode == 200) {                    InputStream inputStream = openConnection                            .getInputStream();                    // Log.i("aaa", inputStream.toString());                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);                    Message msg = Message.obtain();                    msg.obj = bitmap;                    handler.sendMessage(msg);                }            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } catch (MalformedURLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

原创粉丝点击