您的位置:首页 > 理论基础 > 计算机网络

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();
}
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: