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;
}
}
}