HttpClient

来源:互联网 发布:手机淘宝哪里修改地址 编辑:程序博客网 时间:2024/06/13 08:57

HttpClient 是Http 协议的一种 包装类。 可以支持HTTPS,COOKIE。

但是android 已经不推荐使用HttpClient。 所以只是简要介绍, 然后提供一个实例


HttpClient需要以下6个步骤:

1. 创建HttpClient 的实例。

2. 创建某种连接方法,如HttpGet,HttpPost, HttpPut 等等。

3. 用HttpClient 实例去执行execute 方法, 返回HttpResponse。

4. 从HttpResponse 中取出数据流。

5.  处理数据流。

6. 释放数据流





public class MainActivity extends AppCompatActivity {    private ImageView view;    private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        view=(ImageView)findViewById(R.id.view);        btn=(Button)findViewById(R.id.btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String imgUrl = "http://p1.meituan.net/deal/a5c0180d48419fe09f8edb0f267a7e7767069.jpg";                new asyn().execute(imgUrl);            }        });    }    public void onResume(){        super.onResume();    }    private Bitmap getImageBitMap(String url){        URL imgurl = null;        Bitmap bitmap = null;        HttpURLConnection urlConnection;        HttpClient client;        try {            client=new DefaultHttpClient();            HttpResponse response=client.execute(new HttpGet(url));            InputStream inputStream=response.getEntity().getContent();           /* imgurl=new URL(url);            urlConnection=(HttpURLConnection)imgurl.openConnection();            urlConnection.setRequestMethod("GET");            urlConnection.connect();            InputStream inputStream=urlConnection.getInputStream();            OutputStream outputStream=urlConnection.getOutputStream();            bitmap = BitmapFactory.decodeStream(inputStream);*/            bitmap=BitmapFactory.decodeStream(inputStream);            inputStream.close();            // urlConnection.disconnect();        } catch( IOException e){            e.printStackTrace();        }        return bitmap;    }    class asyn extends AsyncTask<String, Void, Bitmap> {        @Override        protected void onPreExecute() {            super.onPreExecute();            view.setImageBitmap(null);        }        @Override        protected void onPostExecute(Bitmap result) {            super.onPostExecute(result);            if (result != null) {                view.setImageBitmap(result);            }        }        @Override        protected Bitmap doInBackground(String... params) {            Bitmap b = getImageBitMap(params[0]);            return b;        }    }}


原创粉丝点击