Android网络请求,Get方式请求,HttpURLConnection请求工具类

package utils;

/**
 * 用作耗时操作回调接口
 * 
 * @author Administrator
 * 
 */
public interface HttpCallbackListener {
    /**
     * 数据响应成功
     * 
     * @param response
     *            返回数据
     */
    void onFinish(String response);

    /**
     * 数据请求失败
     * 
     * @param e
     *            返回错误信息
     */
    void onError(Exception e);
}


package utils;

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

/**
 * 请求数据工具类
 * 
 * @author bob
 * 
 */
public class HttpRequestUtil {
    /**
     * 发送Get请求
     * 
     * @param address
     *            请求数据地址
     * @param listener
     *            耗时回调监听
     */
    public static void sendGetHttpRequest(final String address,
            final HttpCallbackListener listener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpURLConnection connection = null;
                try {
                    // 创建一个URL对象并传入地址
                    URL url = new URL(address);
                    // 用地址打开连接通道
                    connection = (HttpURLConnection) url.openConnection();
                    // 设置请求方式为get
                    connection.setRequestMethod("GET");
                    // 设置连接超时为8秒
                    connection.setConnectTimeout(8000);
                    // 设置读取超时为8秒
                    connection.setReadTimeout(8000);
                    // 设置可取
                    connection.setDoInput(true);
                    // 设置可读
                    connection.setDoOutput(true);
                    // 得到输入流
                    InputStream in = connection.getInputStream();
                    // 创建高效流对象
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(in));
                    // 创建StringBuilder对象存储数据
                    StringBuilder response = new StringBuilder();
                    String line;// 一次读取一行
                    while ((line = reader.readLine()) != null) {
                        response.append(line);// 得到的数据存入StringBuilder
                    }
                    if (listener != null) {// 如果监听被回调
                        // 回调onFinish()方法
                        listener.onFinish(response.toString());
                    }
                } catch (Exception e) {
                    if (listener != null) {
                        // 回调onError()方法
                        listener.onError(e);
                    }
                } finally {
                    if (connection != null) {// 通道不为null
                        connection.disconnect();// 关闭通道
                    }
                }
            }
        }).start();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值