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 ...
随机推荐
- UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串
lienhua342014-10-15 ISO C 定义了 system 函数,用于在程序中执行一个命令字符串.其声明如下, #include <stdlib.h> int system( ...
- Mysql 大量数据导入
今天试图用heidisql 导入一个150M的数据文件(.sql), 结果报out of memory 错误.在网上搜了很多案例,都没能解决问题.我甚至怀疑是mysql 的default的内存设置的太 ...
- Android开发学习笔记-实现联网检测程序版本
package com.frank.mobilesafe; import java.io.InputStream; import java.net.HttpURLConnection; import ...
- Android Call(打电话)的基本知识详解
- JSP转发和重定向的区别
重定向: response.sendRedirect("地址"); a. 页面地址显示最终页面 b. 不可向后传递参数 c. 跳到外 ...
- python中如何将字符串连接在一起,多倍的字符串如何输出
说明: 在python中,如果有多个字符串,想要连接在一起,或者说想要拼接在一起该如何操作,在此记录下. 操作过程: 1.通过 + 这个加号操作符,将字符串拼接在一起 >>> &qu ...
- Nginx服务器之负载均衡策略
http://www.cnblogs.com/1214804270hacker/p/9325150.html
- 修改Tomcat的默认访问目录
放在外网的应用,用户多是直接输入域名访问,而Tomcat的默认目录是ROOT,所以我们需要更改其默认目录. 更改Tomcat的默认目录很简单,只需要修改server.xml就可以了. 具体是是在< ...
- C#反射基础理解1(转)
反射提供了封装程序集.模块和类型的对象(Type类型) 可以使用反射动态的创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后,可以调用类型的方法或访问其字段和属性 . 总之,有了反射, ...
- zabbix加入TCP连接数及状态的监控
一 监控原理: [root@ nginx]# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' TIME_WAI ...