handler线程,判断是否联网,Get获取网页 json解析,输入流转换字符串

来源:互联网 发布:睡眠水 知乎 编辑:程序博客网 时间:2024/06/04 18:29

private List lvData=new ArrayList<>();
private Handler myHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
//得到数据
Result data=(Result) msg.obj;
List

private ListView listView;

Boolean result=NetTypeUtils.isConn(MainActivity.this);
if(result == true){
Log.d(“ZZZ”,”+++result=:+++”+result);
//进行数据请求
try {
new MyTask().execute(“”);
} catch (Exception e) {
e.printStackTrace();
}
}else{
NetTypeUtils.openNetSettingDg(MainActivity.this);
}
—————————————————————-
class MyGetData extends Thread{
@Override
public void run() {

        try {            //1.创建URL            URL url=new URL("https://suggest.taobao.com/sug?code=utf-8&q=%E6%89%8B%E6%9C%BA");            //2.得到HttpUrlCoonection            HttpURLConnection connection=(HttpURLConnection) url.openConnection();            //3.设置            connection.setRequestMethod("GET");            connection.setConnectTimeout(10000);            connection.setReadTimeout(10000);            //4.获取返回码            int code=connection.getResponseCode();            if(code==200){                //5.得到结果                InputStream stream=connection.getInputStream();                //将流转换成字符串                String jsonStr=streamToString(stream);                //进行解析                Gson gson=new Gson();                Result result=gson.fromJson(jsonStr,Result.class);                //发送消息给主线程                Message msg=Message.obtain();                msg.obj=result;                myHandler.sendMessage(msg)            }        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}

/**
* 将一个输入流转换成一个字符串
* @param stream
* @return
*/
public String streamToString(InputStream stream){

    ByteArrayOutputStream outputStream=new ByteArrayOutputStream();    try {        byte[] bytes=new byte[1024];        int len=0;        while ((len=stream.read(bytes))!=-1){            outputStream.write(bytes,0,len);        }        outputStream.flush();        outputStream.close();        stream.close();    } catch (IOException e) {        e.printStackTrace();    }    return outputStream.toString();}
原创粉丝点击