HttpURLConnection(1):网络编程的最佳实践

来源:互联网 发布:淘宝拖鞋底 编辑:程序博客网 时间:2024/05/29 06:45

HttpCallbackListener接口

HttpCallbackListener.java

public interface HttpCallbackListener {    void onFinish(String response);    void onError(Exception e);}

HttpUtil工具类

public class HttpUtil {    public static void sendHttpRequest(final String address, final HttpCallbackListener listener) {        new Thread(new Runnable() {            @Override            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.getDoInput();                    connection.getDoOutput();                    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) {                        //回调onFinish()方法                        listener.onFinish(response.toString());                    }                } catch (IOException e) {                    if (listener != null) {                        //回调onError()方法                        listener.onError(e);                    }                } finally {                    if (connection != null) {                        connection.disconnect();                    }                }            }        }).start();    }}

具体使用

String address = "https://www.baidu.com/";HttpUtil.sendHttpRequest(address, new HttpCallbackListener() {    @Override    public void onFinish(String response) {        //在这里根据返回内容执行具体的逻辑    }    @Override    public void onError(Exception e) {        //在这里对异常情况进行处理    }});

最后别忘了添加网络权限

<uses-permission android:name="android.permission.INTERNET"/>
0 0
原创粉丝点击