天天看點

Android安卓HttpUrlConnection請求POST,GET封裝

  1. 建立httpfun類
Android安卓HttpUrlConnection請求POST,GET封裝
Android安卓HttpUrlConnection請求POST,GET封裝

2.建立一個receive接口

Android安卓HttpUrlConnection請求POST,GET封裝
Android安卓HttpUrlConnection請求POST,GET封裝

3.接口内代碼

package com.example.httpurlconnectionfun;

public interface Receive {

    void onFinish(String data);

    void onError(Exception e);

}

4.httpfun類内代碼

public class HttpFun {

    public static void sendHttp(final String address,final Receive fun,final String type,final String data){

        //address為請求位址

        //fun為請求後執行執行個體

        //type為請求方式

        //data為請求資料

        //開始子線程處理post請求

        new Thread(new Runnable() {

            @Override

            public void run() {

                HttpURLConnection connection=null;

                BufferedReader reader=null;

                URL url;

                try {

                    if(type=="GET"){

                        url=new URL(address+"?"+data);

                    }else{

                        url=new URL(address);

                    }

                    connection=(HttpURLConnection) url.openConnection();

                    connection.setRequestMethod(type);

                    if(type=="POST"){

                        DataOutputStream data1=new DataOutputStream(connection.getOutputStream());

                        data1.writeBytes("name=小明&password=123456&token=123");

                    }

                    connection.setReadTimeout(8000);

                    connection.setConnectTimeout(8000);

                    InputStream inputStream=connection.getInputStream();//擷取伺服器傳回輸入流

                    reader=new  BufferedReader(new InputStreamReader(inputStream));

                    StringBuilder response=new StringBuilder();

                    String line;

                    while ((line=reader.readLine())!=null){

                        response.append(line);

                    }

                    if (fun!=null){

                        fun.onFinish(response.toString()

);

                    }

                }catch (Exception e){

                    e.printStackTrace();

                    if(fun!=null){

                         fun.onError(e);

                    }

                }finally {

                    if(connection!=null){

                        //關閉連接配接

                        connection.disconnect();

                    }

                }

            }

        }).start();

    }

}

5.使用方法

HttpFun.sendHttp("http://www.baidu.com", new Receive() {

    @Override

    public void onFinish(String data) {

        Log.d("finish",data);

    }

    @Override

    public void onError(Exception e) {

        e.printStackTrace();

        Log.d("finish","111");

    }

},"GET","name=1");