package com.bwie.renzhili;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class NetUtils {
//接口
public interface getRequeryCallBack<T>{
void getRequery(T object);
}
//网络数据接口回调的方法
public static void getRequery(String url, final Class clazz, final getRequeryCallBack getRequeryCallBack){
new AsyncTask<String,Void,Object>(){
@Override
protected Object doInBackground(String... strings) {
return getGsondata(strings[0],clazz);
}
@Override
protected void onPostExecute(Object o) {
getRequeryCallBack.getRequery(o);
}
}.execute(url);
}
//解析数据的方法
public static <E> E getGsondata(String url,Class clazz){
String requery = getRequery(url);
E e = (E) new Gson().fromJson(requery, clazz);
return e;
}
//网络请求的方法
public static String getRequery(String url){
try {
URL url1 = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode==200){
String s = getstrarm2string(urlConnection.getInputStream());
return s;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//字节流转换成字符流的方法
private static String getstrarm2string(InputStream inputStream) throws IOException {
StringBuilder builder = new StringBuilder();
//创建字符缓冲流
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
//读取字符流
for (String tmp = br.readLine();tmp!=null;tmp=br.readLine()){
builder.append(tmp);
}
return builder.toString();
}
//定义接口
public interface CallBack{
void setloadimage(String url,Bitmap bitmap);
}
//获取网络图片接口回调的方法
public static void getloadimage(final String url, final CallBack callBack){
AsyncTask<String,Void,Bitmap> asyncTask = new AsyncTask<String, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(String... strings) {
return loadimage(strings[0]);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
//接口回调
callBack.setloadimage(url,bitmap);
//imageView.setImageBitmap(bitmap);
}
}.execute(url);
}
//请求网络图片的方法
public static Bitmap loadimage(String urlimage){
try {
//创建URL
URL url1 = new URL(urlimage);
//打开链接
HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
//设置访问方式
urlConnection.setRequestMethod("GET");
//设置超时
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
//返回响应码
int responseCode = urlConnection.getResponseCode();
//判断响应是否成功
if (responseCode==200){
//将网络路径转换成存入bitmap
Bitmap bitmap = BitmapFactory.decodeStream(urlConnection.getInputStream());
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
工具类封装获取网络数据+网络图片的方法
猜你喜欢
转载自blog.csdn.net/ren18234073466/article/details/83787041
今日推荐
周排行