网络编程最佳实践一

来源:互联网 发布:编程语言进化 编辑:程序博客网 时间:2024/05/16 19:11

HttpUtil.java

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import okhttp3.OkHttpClient;import okhttp3.Request;/** * Created by 王德强 on 2017/7/25. */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.setReadTimeout(8000);                    connection.setConnectTimeout(8000);                    connection.setDoOutput(true);                    connection.setDoInput(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) {                    if(listener!=null){                        listener.onError(e);                    }                }finally {                    if(connection!=null){                        connection.disconnect();                    }                }            }        }).start();    }

回调机制 接口
HttpCallbackListener.interfac

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

以后每当需要发起一条Http请求的时候就可以这样写:

String address = "http://www.baidu.com";String response = HttpUtil.sendHttpRequest(address);
原创粉丝点击