HttpURLConnection请求图片
2015-08-13 17:12
567 查看
效果图:
页面代码:
public class HttpJpgActivity extends Activity { private ImageView view; private Handler handler; private File file = new File(Environment.getExternalStorageDirectory(), "baidu.jpg"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.item_image); view = (ImageView) findViewById(R.id.iv_city); new Thread(new ImageThread()).start(); handler = new Handler() { @Override public void handleMessage(Message msg) { try { FileInputStream fileInputStream = new FileInputStream(file); Bitmap bitmap = BitmapFactory.decodeStream(fileInputStream); view.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } } }; } public class ImageThread implements Runnable { @Override public void run() { try { URL url = new URL("http://www.baidu.com/img/bdlogo.png"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(3000); urlConnection.setReadTimeout(3000); urlConnection.connect(); FileOutputStream fileOutputStream = new FileOutputStream(file); if (urlConnection.getResponseCode() == 200) { InputStream inputStream = urlConnection.getInputStream(); byte[] bytes = new byte[1024]; int len; while ((len = inputStream.read(bytes)) != -1) { fileOutputStream.write(bytes, 0, len); } //将缓冲刷入文件 fileOutputStream.flush(); handler.sendEmptyMessage(0x001); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } }
权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
相关文章推荐
- 备忘----创建套接字进行地址和端口进行网络序转换时使用ipv4和ipv6都通用的函数
- python下的复杂网络编程包networkx、matplotlib、numpy安装及报错解决方案
- 网络篇----NSURLConnection断点下载
- 使用HttpClientdopost编写 客户端、服务器与数据库Demo
- TCP与UDP区别
- 基于TCP/IP协议的网络编程
- 【Ex2013】【跨站点DAG】启用DAC模式,防止数据库级别上出现网络分区
- 第十八章、Linux网络配置
- tomcat下配置https环境
- IOS Q&A 我应该如何在网络传输中保持数据的安全性?
- 使用开源框架android-async-http-1.4.8.jar与服务器传输数据
- Nginx的tcp反向代理初探
- 网络篇----下载大文件
- 黑马程序员--java技术blog---第九篇:网络编程(2)
- java HttpServletRequest 获取和设置session
- Apache Http Server与Tomcat6 的负载均衡(二)
- xUtils框架介绍之HttpUtils的使用
- HTTP长连接与短链接
- Android_HTTP状态码介绍
- 深度学习概述:从感知机到深度网络