博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android封装get请求
阅读量:4229 次
发布时间:2019-05-26

本文共 1473 字,大约阅读时间需要 4 分钟。

最近在写Android,因为get请求太常用了,就做了个封装,课本整合,

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 response=new StringBuilder();
                    String line;
                    while ((line=reader.readLine())!=null){
                        response.append(line);
                    }
                    if(listener!=null){
                        listener.onFinish(response.toString());
                    }
                }catch (Exception e){
                    if(listener!=null){
                        listener.onError(e);
                    }
                }finally {
                    if(connection!=null){
                        connection.disconnect();
                    }
                }
            }
        }).start();
    }
}
public interface HttpCallbackListener {
    void onFinish(String response);
    void onError(Exception e);
}
activity中使用

    private void sendToGetCoin(int car_id){

        String coinUrl="http://"+ MyIp.ip+":8080/CarSafe/IntegrationServlet?car_id="+car_id;
        HttpUtil.sendHttpRequest(coinUrl, new HttpCallbackListener() {
            @Override
            public void onFinish(String response) {
              Message message=new Message();
                message.what=SHOW_COIN;
                message.obj=response;
                handler.sendMessage(message);//这样就完成了和主线程通信,通过主线程显示出来
            }
            @Override
            public void onError(Exception e) {
            }
        });
    }

转载地址:http://apjqi.baihongyu.com/

你可能感兴趣的文章
结构体知识汇总
查看>>
内存操作越界略述
查看>>
消息与消息队列
查看>>
关于#include "stdafx.h"
查看>>
VC下线程同步的三种方法(互斥、事件、临界区)/(转)
查看>>
非常好的一篇U-BOOT的文章--转载
查看>>
【设计模式】学习之创建型 单例模式
查看>>
【设计模式】学习之创建型 原型模式
查看>>
【设计模式】学习之结构型 适配器模式-装饰器模式-代理模式
查看>>
Maven+Eclipse+Tomcat+Spring MVC web 请求 404 问题总结及noHandlerFound
查看>>
SpringMVC API缓存 LastModified的实现总结
查看>>
406 Not Acceptable 415 Unsupported Media Type Spring MVC consumes与produces
查看>>
MyBatis 高级映射与懒加载
查看>>
HCIP-H12-222练习题
查看>>
点到点IPSec VPN的配置
查看>>
MySQL InnoDB何时更新表的索引统计信息
查看>>
MTU 设置错误导致防火墙或者路由器断网
查看>>
子网划分详解与子网划分实例
查看>>
游戏通讯技术:帧同步技术
查看>>
防火墙技术指标---并发连接数/吞吐量
查看>>