http协议get方式获取图片
2015-10-24 14:06
411 查看
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class GetImage { private static String PATH = "http://192.168.1.119:8080/ok/point_one.png"; public static void main(String[] args) { // TODO Auto-generated method stub savaDisk(); } //存到本地 public static void savaDisk(){ InputStream in = getInputStream(); FileOutputStream fos = null; byte[] data = new byte[1024]; int len = 0; try { fos = new FileOutputStream("D:\\test.png"); while((len = in.read(data))!=-1){ fos.write(data, 0, len); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(in!=null){ try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(fos!=null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static InputStream getInputStream() { InputStream in = null; HttpURLConnection httpconn = null; try { // 声明url URL url = new URL(PATH); if (url != null) { // 建立客户端与服务器端链接 httpconn = (HttpURLConnection) url.openConnection(); // 设置网路超时时间,如果超过这个时间自动断开 httpconn.setConnectTimeout(3000); // 打开输入流 httpconn.setDoInput(true); // 设置请求方式 httpconn.setRequestMethod("GET"); // 获取响应的状态码 int responseCode = httpconn.getResponseCode(); // 判断是否是ok if (responseCode == 200) { // 从服务器获得一个输入流 in = httpconn.getInputStream(); } } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return in; } }
android4.0以下可以用
package com.example.getimg; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class MyActivity extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String path = "http://192.168.1.119:8080/ok/point_one.png"; //uri try { URL url = new URL(path); //获得链接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //设置参数 conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); //正式链接 conn.connect(); if(conn.getResponseCode()==200){ InputStream is = conn.getInputStream(); //把InputStream通过bitmap转化成图片 Bitmap bitmap = BitmapFactory.decodeStream(is); ImageView img = (ImageView) findViewById(R.id.img); img.setImageBitmap(bitmap); }else{ Toast.makeText(MyActivity.this,"没有响应",Toast.LENGTH_SHORT).show(); } } catch (Exception e) { e.printStackTrace(); } } }); } }
相关文章推荐
- poj2396有上下限网络流
- HTTP上传大文件的注意点
- Android网络框架Volley(实战篇)
- http头部
- 安卓访问网络,从数据库拿数据
- 基于NanoHttpd的Android视频服务器开发
- 基于NanoHttpd的Android视频服务器开发
- 2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5454 Excited Database (2015年沈阳赛区网络赛E题)
- TCP/IP基础知识
- 以太网OAM技术介绍 http://blog.chinaunix.net/uid-113269-id-267427.html
- hdoj 3549 Flow Problem【网络流最大流入门】
- Nodejs网络模块的选择
- android中图片的三级cache策略(内存、文件、网络)
- RHCE 系列(一):如何设置和测试静态网络路由
- 查看、关闭linux自启动网络服务
- android中图片的三级cache策略(内存、文件、网络)
- tcpdump+wireshark分析数据笔记(2)
- TCP/IP 协议栈及 OSI 参考模型详解
- 5.2的Dr.com客户端启动不了,3.7的客户端提示本机未安装TCPIP协议