dhroid - DhNet 网络http工具
- DhNet net=new DhNet("路劲");
- net.addParam("key", "参数")
- .addParam("key2", "参数2");
- .doGet(new NetTask(this) {
- @Override
- public void doInUI(Response response, Integer transfer) {
- //处理返回结果
- }
- });
- 如果参数为为textview或其子类或调用方法getText().toString();
- net.setMethod("get或post")
- 或者
- net.doGet(new NetTask(this){xxx});
- net.doPost(new NetTask(this){xxx})
- net.doGetInDialog(new NetTask(this) {xxx});//get同时打开一个对话框
- net.doPostInDialog(new NetTask(this) {xxx});//post同时打开一个对话框
- net.doGet(true, new NetTask(this) {xxx});//第一个参数是否显示对话框
- net.setDialogerMsg("对话框信息");
- //当发生错误时回调这个回调是在UI线程中
- public void onErray(Response response)
- //返回数据后会现在后台处理
- public void doInBackground(Response response1)
- //最后会在ui线程处理
- public void doInUI(Response response, Integer transfer)
- //在doInBackground添加代码
- public void doInBackground(Response response) {
- super.doInBackground(response);
- //在response中添加传递的对象
- response.addBundle("key", "对象传递");
- //传递到UI,第二个参数为自定义编码
- transfer(response, 100);
- }
- //在doInUI中
- public void doInUI(Response response, Integer transfer) {
- if(transfer==100){
- //获取传递的对象
- Object obj=response.getBundle("key")
- }
- }
- String res=response.plain()//可以获取网络访问的纯文本
JSONObject jo=response.jSON()//可以返回网络访问的json对象
网络默认最佳返回格式,当然不是必须的
- {
- success:true,
- msg:'消息内容',
- code:'error'
- data:{}
- }
- {
- success:true,
- msg:'消息内容',
- code:'error'
- data:{}
- }
- //假设返回的结果
- {success:true,
- data:{
- user:{
- id:1212,
- name:'tengzhinei'
- }
- },
- articles:[
- {id:1},
- {id:2}
- ]
- }
- //json处理
- boolean success=response.isSuccess();//是否成功,
- JSONObject jo = response.jSONFromData();//获取data节点下的对象
- JSONObject data = response.jSONFrom("data");;//获取data节点下的对象
- JSONObject user = response.jSONFrom("data.user");//获取data.user节点下的对象
- JSONArray array = response.jSONArrayFrom("data.articles");//获取data.articles节点下的数组
- //也可以直接将json转为bean
- User user = response.modelFrom("data.user",User.class);//可以直接获取到user对象(这边使用了泛型)
- List<Article> articles = response.listFrom(User.class, "data.articles")//获取对象数组
- ViewUtil.bindView(findViewById(R.id.time), JSONUtil.getLong(jo, "time"),"time");
- //第一个参数view 可以为textview或其子类 ,imageView//如果是imageview 如果第二个参数是字符串会自动下载图片,如果是drawable,bitmap,int或获取直接绑定图片
- //第二个数 数据
- //第三个数 数据修饰 //这里将数据修饰为时间类型,具体修饰问题在后面讲adapter再讲吧
- DhNet net=new DhNet();
- net.setUrl("http://youxianpei.c.myduohuo.com/mobile_index_adbjsonview?id=63&temp=cache_net_error");
- //看这里使用缓存策略
- net.useCache(CachePolicy.POLICY_ON_NET_ERROR);
- net.doGet(new NetTask(getActivity()) {
- @Override
- public void doInUI(Response response, Integer transfer) {
- //response有方法判断这次结果是不是缓存
- if (!response.isCache()) {
- dialoger.showToastShort(getActivity(), "这次访问不是使用的缓存,断开网络试试看");
- }else{
- dialoger.showToastShort(getActivity(), "网络访问失败,这次使用的是缓存");
- }
- }
- });
- net.useCache(CachePolicy.XXX);//就可以添加缓存策略了
- 现在有的缓存策略
- //不使用缓存
- POLICY_NOCACHE;
- //只使用缓存
- POLICY_CACHE_ONLY;
- //先使用缓存,然后获取但是获取的数据只会缓存起来
- POLICY_CACHE_AndRefresh;
- //当网络不好时,才会使用缓存
- POLICY_ON_NET_ERROR;
- //先使用缓存,然后获取,获取后会再使用
- POLICY_BEFORE_AND_AFTER_NET;
- 这些缓存策略都好理解,唯一需要说的POLICY_BEFORE_AND_AFTER_NET
- 其他策略的doInBackground和doInUI只会被回调一次
- 但是POLICY_BEFORE_AND_AFTER_NET
- doInBackground和doInUI 可能 会被回调两次,一次是上次缓存(如果上次没缓存当然不会回调),一次真正的网络获取的数据
- //网络缓存简单吧
- Const.net_error_try=true;
- DhNet net=new DhNet("路径");
- net.addParam("key1", "参数1")
- .addParam("key2", "参数2").upload("文件参数名", file, new NetTask(this) {
- @Override
- public void doInUI(Response response, Integer transfer) {
- if (response.isSuccess()) {
- Boolean uploading = response.getBundle("uploading");
- if (!uploading) {
- //上传完成
- }else{
- //已上传大小
- long length= response.getBundle("length");
- //文件总大小
- long total= response.getBundle("total");
- }
- }
- }
- });
- //文件下载需要注入
- @Inject
- DownLoadManager downloader;
- //启动下载
- downloader.download("任务编码","路劲",params,"本地保存路径");//第三个参数附加参数
- //注册下载监听
- downloader.regeisterCallBack("任务编码",downLoadCallBack);
- //取消下载监听
- downloader.unregeisterCallBack("任务编码");
- NetUtil.sync(url, method, params);
- NetUtil.syncStream(url, method, params);
- HttpManager.execute(HttpGet);
dhroid - DhNet 网络http工具的更多相关文章
- [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)
wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...
- TCP/UDP网络性能测试工具 - Netperf (zz) ..网络测试工具
在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多. 除了netperf以外. 还有很多其它的网络性能测试工具. 如db, ...
- 网络性能测试工具iperf详细使用图文教程
Iperf是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性. Iperf可以报告带宽,延迟抖动和数据包丢失.利用Iper ...
- [转]网络诊断工具:MTR
MTR是Linux平台上一款非常好用的网络诊断工具,集成了traceroute.ping.nslookup的功能,用于诊断网络状态非常有用.能按要求对路由中所有节点进行批量测试 第一列(Host):I ...
- Linux网络统计工具/命令
我在Linux(基于CentOS 或者 Debian 的发行版)中该如何查看当前网络端口吞吐量的统计信息?在Linux操作系统中如何查看当前内核snmp计数器以及网络端口的统计信息? 你可以使用以下任 ...
- 网络性能测试工具iperf详细使用图文教程【转载】
原文:http://blog.163.com/hlz_2599/blog/static/142378474201341341339314/ 参考:http://man.linuxde.net/iper ...
- 网络攻防工具介绍——Wireshark
网络攻防工具介绍 Wireshark 简介 Wireshark(前称Ethereal)是一个网络封包分析软件.它是一个理想的开源多平台网络协议分析工具.网络封包分析软件的功能是撷取网络封包,并尽可能显 ...
- IOS开发之网络开发工具
IOS开发之网络开发工具 做移动端开发 常常会涉及到几个模块:1.网络检測 2.网络请求get和post请求 3.文件上传 4.文件下载 5.断点续传 如今将这些一一分享给大家 ,也欢迎 ...
- 基于Android Volley的网络请求工具
基于Android Volley的网络请求工具. 一.说明 AndroidVolley,Android Volley核心库及扩展工程.AndroidVolleySample,网络请求工具示例工程.Re ...
随机推荐
- 通过phoenix在hbase上创建二级索引,Secondary Indexing
环境描述: 操作系统版本:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 phoenix版本:phoenix-4.10.0 hbase版本: ...
- 第二种方式,修改python unittest的执行顺序,使用猴子补丁
1.按照测试用例的上下顺序,而不是按方法的名称的字母顺序来执行测试用例. 之前的文章链接 python修改python unittest的运行顺序 之前写的,不是猴子补丁,而是要把Test用例的类名传 ...
- java图片裁剪和java生成缩略图
一.缩略图 在浏览相冊的时候.可能须要生成相应的缩略图. 直接上代码: public class ImageUtil { private Logger log = LoggerFactory.getL ...
- 手机APP支付--整合银联支付控件
长话短说,本文根据银联官方说明文档,简单总结下,并且说明下中途碰到问题该如何解决. 一.开发前的准备工作1. 打开https://open.unionpay.com/,后续说的文档下载.FAQ查询等都 ...
- 关于openssl的编译与使用
关于openssl的编译与使用,可以参考这两往篇文章 http://blog.csdn.net/lazyclough/article/details/7456131 http://www.leaves ...
- MySQL用户认证及权限控制
一.MySQL用户认证: 登录并不属于访问控制机制,而属于用户身份识别和认证: 1.用户名—user 2.密码—password 3.登录mysqld主机—host 实现用户登录MySQL,建立连接. ...
- str.split()与re.split()的区别
str.split(): >>>'hello, world'.split() >>>['hello,','world'] >>>'hello, w ...
- 转载 IMP时数据库的IO性能监控,并提供IOPS的计算方法
IMP时数据库的IO性能监控,并提供IOPS的计算方法 2011-07-15 17:36:10 分类: Linux [root@ntkdb oradata]# iostat -x 1 10 ...
- 【代码审计】QYKCMS_v4.3.2 后台down.php页面代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- iOS开发--NSDateFormatter
NSDate对象包含两个部分,日期(Date)和时间(Time).格式化的时间字符串主要也是针对日期和时间的 1.基础用法 NSDate* now = [NSDate date]; NSDateFor ...