关于对发送HTTP请求以及解析服务器返回的数据操作的提取到一个公共类中进行封装

创建一个名为HttpUtil的类并提供名为sendHttpRequest静态方法.
相关代码如下:
package com.hzy.networktest;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;



    public class HttpUtil {
        public static void sendHttpRequest(final String address,final HttpCallbackListener listener){
            new Thread(new Runnable() {
                public void run() {




            HttpURLConnection connection=null;
            try {
                URL url=new URL(address);
                connection=(HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(8000);
                connection.setReadTimeout(8000);
                connection.setDoInput(true);
                connection.setDoOutput(true);
                InputStream in=connection.getInputStream();
                BufferedReader reader=new BufferedReader(new InputStreamReader(in));
                StringBuilder response=new StringBuilder();
                String line;
                while((line=reader.readLine())!=null){
                    response.append(line);
                }
                if(listener!=null){
                    listener.onFinish(response.toString());
                }


            } catch (Exception e) {
                // TODO: handle exception
                if(listener!=null){
                    listener.onError(e);
                }
            }finally {
                if(connection!=null){
                    connection.disconnect();
                }
            }


        }
    }).start();
        }
    }


以后每当需要发起一条HTTP请求的时候可以简化为以下写法:
String address="http://www.*******";//(输入相应的网址或者其他的类型为URL的资源地址)
String response=HttpUtil.sendHttpRequest(address,new HttpCallbackListener){
//重写onFinish()
public void onFinish(string response){
//在这里根据返回的内容执行具体的逻辑
}
//重写onError()
public void onError(Exception e){
//在这里对异常情况进行处理
}

};
希望我们在学习的过程中多留意这些常用功能的封装,进而让自己写程度的过程更便捷


你可能感兴趣的:(Android)