HttpURLConnection 静态类调用


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.setDoInput(true);
                    connection.setDoOutput(true);
                    InputStream in = connection.getInputStream();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                    StringBuilder request = new StringBuilder();
                    String line;
                    while ((line = reader.readLine()) != null) {
                        request.append(line);
                    }

                    if (listener != null) {
                        //回调onFinish()方法
                        listener.onFinish(request.toString());
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                   if(listener!=null){
                       //回调onError()方法
                       listener.onError(e);
                   }
                } finally {
                    if (connection != null)
                        connection.disconnect();
                }
            }
        }).start();
    }

    //自定义接口
    public interface HttpCallBackListener {
        void onFinish(String address);//服务器成功响应请求时调用


        void onError(Exception e);//网络操作错误时调用
    }
}

HttpRULConnection:
connection.setRequestMethod("GET");
查阅api
setRequestMethod 获取请求方法


public void setRequestMethod(String method)
                      throws ProtocolException
设置 URL 请求的方法, 
GET 
POST 
HEAD 
OPTIONS 
PUT 
DELETE 
TRACE 
以上方法之一是合法的,具体取决于协议的限制。默认方法为 GET。 

setDoOutput
public void setDoOutput(boolean dooutput)
将此 URLConnection 的 doOutput 字段的值设置为指定的值。
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。
setDoInput


public void setDoInput(boolean doinput)
将此 URLConnection 的 doInput 字段的值设置为指定的值。
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
Reader –>String
BufferedReader reader= new BufferedReader(new InputStreamReader(in));  
StringBuffer request= new StringBuffer();  
String line = " ";  
while ((line = reader.readLine()) != null){  
    request.append(line);  
}  
return request.toString();  


//自定义接口
public interface HttpCallBackListener {
    void onFinish(String address);//服务器成功响应请求时调用


    void onError(Exception e);//网络操作错误时调用

}

URL url = new URL(address);
onFinish()方法中参数代表服务器返回的数据
onError()方法中参数记录着错误的详细信息

猜你喜欢

转载自blog.csdn.net/m0_37471638/article/details/76576505