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

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();
}

猜你喜欢

转载自blog.csdn.net/Awangzhanqin/article/details/78428729