HttpURLConnection请求网络工具类


import android.os.Handler;
import android.os.Message;

import com.google.common.io.CharStreams;

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


public class HttpHelper {
    private HttpListener listener;

    public HttpHelper() {
    }

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String data = (String) msg.obj;
            listener.success(data);
        }
    };

    public HttpHelper get(String url) {
        doHttp(url, "GET", "");
        return this;
    }

    public HttpHelper post(String url, String id) {
        doHttp(url, "POST", id);
        return this;
    }


    //网络请求
    private void doHttp(final String url, final String methond, final String id) {
        new Thread() {
            @Override
            public void run() {
                super.run();

                try {
                    URL url1 = new URL(url);
                    HttpURLConnection connection = (HttpURLConnection) url1.openConnection();

                    connection.setConnectTimeout(5000);
                    Message message = Message.obtain();
                    connection.setRequestMethod(methond);
                    if ("POST".equals(methond)) {
                        PrintWriter writer = new PrintWriter(connection.getOutputStream());
                        writer.write(id);
                        writer.flush();
                        writer.close();
                    }
                    connection.connect();
                    int code = connection.getResponseCode();
                    if (code == HttpURLConnection.HTTP_OK) {
                        InputStream inputStream = connection.getInputStream();
                        String s = CharStreams.toString(new InputStreamReader(inputStream, "UTF-8"));
                        message.obj = s;
                    }
                    handler.sendMessage(message);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    public void result(HttpListener listener) {
        this.listener = listener;
    }


    public interface HttpListener {
        void success(String data);
    }


}

猜你喜欢

转载自blog.csdn.net/Guilin666/article/details/84203613