1. 新建httpfun类

 

 

2.新建一个receive接口

 

 

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");

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐