import com.taotaospoken.project.json.request.BaseRequest;
import com.taotaospoken.project.json.response.BaseResponse;
import com.taotaospoken.project.util.NetworkUtil;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
/**
* @作者 尤立才
* @时间 2013-12-18
* @作用 供客户端调用,获取后台数据或者提交表单
* @开始编写代码啦...
*/
public class NetworkDataAccessApi {
private static Context context;
private static NetworkDataAccessApi mNetworkDataAccess;
private static JsonFactory mJsonFactory; //json数据处理工厂
private LoadDataTask loadtask;
// 访问网络资源 所必要的 参数
private int urlId = 0; // URLID
private String accessUrl = null;// 网络资源地址
private BaseRequest requestParam = null; // 地址参数
private NetworkDataAccessListner dataResponseListner = null; // 外部调用接口
private BaseResponse mBaseResponse;
/**
*
* @描述 获得返回数据实例
* @参数 @return
* @作者 尤立才
* @时间 2013-12-18
* @返回类型 DataResponse
*/
public static NetworkDataAccessApi getInstance(Context context1) {
if (mNetworkDataAccess == null) {
mNetworkDataAccess = new NetworkDataAccessApi();
mJsonFactory = JsonFactory.getNewFactory(context);
}
context = context1;
return mNetworkDataAccess;
}
/**
*
* @描述 发送请求
* @参数 @param ID 访问Url对应的ID
* @参数 @param accessUrl 访问Url
* @参数 @param requestParam URL参数
* @作者 尤立才
* @时间 2013-12-18
* @返回类型 void
*/
public void sendRequest(int ID, String accessUrl,
BaseRequest requestParam,BaseResponse baseResponse) {
mBaseResponse=baseResponse;
this.urlId = ID;
this.accessUrl = accessUrl;
this.requestParam = requestParam;
loadtask = new LoadDataTask();
loadtask.execute();
}
/**
*
* @描述 取消本次请求
* @参数
* @作者 尤立才
* @时间 2013-12-18
* @返回类型 void
*/
public void cancellTask() {
if (loadtask != null
&& loadtask.getStatus() == AsyncTask.Status.RUNNING) {
loadtask.cancel(true);
loadtask = null;
if (dataResponseListner != null) {
dataResponseListner.ReceiveDataCancelled();
}
}
}
private void receiveDataComplete(Object o) {
if (this.dataResponseListner != null) {
dataResponseListner.ReceiveDataComplete(o);
}
}
private void receiveDataOverTime() {
if (dataResponseListner != null) {
dataResponseListner.ReceiveDataOverTime();
}
}
private void receiveDataError() {
if (dataResponseListner != null) {
dataResponseListner.ReceiveDataError();
}
}
// ============================================================================
class LoadDataTask extends AsyncTask<Object, Integer, Object> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
if (loadtask.isCancelled()) {
Log.e("=============================", "onPreExecute 取消了");
} else {
Log.e("=============================", "onPreExecute");
}
super.onPreExecute();
}
@Override
protected Object doInBackground(Object... objects) {
Object object = null;
try {
object = mJsonFactory.getData(accessUrl, requestParam, urlId,mBaseResponse);
} catch (Exception e) {
object = null;
}
return object;
}
@Override
protected void onPostExecute(Object result) {
if (loadtask.isCancelled()) {
Log.e("=============================", "onPostExecute 取消了");
} else {
Log.e("=============================", "onPostExecute");
}
try {
if (NetWork.REQUEST_SUCCESS == mJsonFactory.getResponseCode()) {
if (result == null) {
receiveDataError();
} else
receiveDataComplete(result);
} else if (NetworkUtil.NO_NET_CONNECT == mJsonFactory
.getResponseCode()) {
receiveDataOverTime();
} else {
receiveDataOverTime();
}
} catch (Exception e) {
receiveDataError();
}
}
@Override
protected void onCancelled() {
// TODO Auto-generated method stub
super.onCancelled();
}
}
public void setDataResponseListner(
NetworkDataAccessListner dataResponseListner) {
this.dataResponseListner = dataResponseListner;
}
// ====================以下是外部调用接口==================================
public interface NetworkDataAccessListner {
/*
* 加载数据完成
*/
void ReceiveDataComplete(Object object);// 加载数据完成
void ReceiveDataError();// 加载数据出问题
void ReceiveDataOverTime();// 加载数据超时
void ReceiveDataCancelled();// 加载数据取消
}
}
写的一般,望大神指点。
相关推荐
Perplexity SPACE沙箱平台:安全AI开发环境实战解析
沙箱技术通过资源隔离和权限控制创建受限执行环境,其核心原理是容器化隔离机制。在AI开发领域,这种技术解决了环境配置复杂性和安全风险等关键问题。SPACE沙箱平台作为AI代码执行环境,提供了标准化的开发沙箱,支持Python生态和主流AI框架。通过实战案例展示,该平台特别适用于情感分析等NLP任务的快速原型验证,帮助开发者在安全隔离的环境中测试AI模型和算法,显著提升开发效率并降低系统风险。
ajax、axios、fetch之间的详细区别以及优缺点
将ajax、axios和fetch做个简单的比较 1.jQuery ajax $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () {}, error: function () {} }); 优缺点: 本身是针对MVC的编程,不符合现在...
Spine换装系统深度优化:从局部换肤到动态合批的进阶之路
本文深入探讨了Spine换装系统的性能优化策略,从局部换肤到动态合批的进阶技术。通过分析传统方案的性能瓶颈,提出动态合批、GPU Instancing等高级优化方法,显著降低Draw Call和内存占用,提升游戏性能。适用于MMO和大型游戏开发,帮助技术美术和工程师突破大规模换装场景的性能限制。
getName、setName、封装(private)的情况下怎么获取其中的属性数据
#封装的优点:1.提高数据的安全性,保护数据 2.隐藏实现代码的细节 3.统一接口 4.提高了系统的可维护性 #getName;setName;标准代码↓(重点就是创建一个方法,return 属性再调用、另外一个是创建一个方法,让this.name=形式参数,最后调用的时候就可以间接赋值) ##第一部分: package base.oop.Demo03; public class Application { public static void main(String[] args) {
动态对抗Zygisk-IL2CppDumper:Unity游戏安全新策略
本文深入探讨了对抗Zygisk-IL2CppDumper攻击的Unity游戏安全新策略。通过实时内存监控、动态混淆技术和异常行为检测体系,有效防止关键代码被动态提取。文章详细介绍了内存指纹系统、运行时混淆方案和五维特征模型等实用防御手段,帮助开发者提升游戏安全性。
RustDesk网页端远程控制实战:如何用Web Client替代传统客户端(附安全配置建议)
本文详细介绍了RustDesk网页端远程控制的实战应用,包括其核心优势、配置流程及安全加固方案。通过Web Client替代传统客户端,用户可实现跨平台无缝体验和企业级管理效率,特别适合临时协作和移动设备使用。文章还提供了JWT身份验证、LDAP集成等安全配置建议,确保网页端访问的安全性。
浅谈web前端与后台数据交互
1.什么是web服务器?服务器: 通俗理解,一台24小时工作的机器 web服务器:一台24小时工作的能处理web请求的服务器看图,用实例说话2.web服务器的操作系统既然服务器是一台机器,那么就会有操作系统 常见的服务器上安装的操作系统为Linux,Linux会有好多不同的版本,如ubuntu,centos,redhat。 Windows在服务器领域就不像个人操作系统那样霸主位置了(Windo
使用JAVA 的 POI 库 将DOC文件转为DOCX文件
java使用POI库,将doc文件转为docx文件
前端传值给后台的三种方法
前端传值到后台的方法
保姆级教程:手把手配置AutoSar诊断复位(Dcm 0x11服务联动BswM/EcuM)
本文提供AutoSar诊断复位(Dcm 0x11服务联动BswM/EcuM)的保姆级配置教程,详细讲解从诊断服务基础配置到BswM规则引擎搭建、服务端口映射及EcuM复位执行的完整流程。通过Vector配置工具的实际截图和代码片段,帮助开发者高效实现远程复位功能,并分享调试技巧与性能优化实践。
人工蜂鸟算法(AHA)详解:原理、实现与应用
人工蜂鸟算法(AHA)是一种受蜂鸟飞行技能和觅食策略启发的新型元启发式优化算法。该算法模拟蜂鸟的全向飞行、记忆能力和觅食行为,通过引导觅食、领地觅食和迁徙觅食三种策略在解空间高效搜索。AHA将优化问题解类比为食物源,蜂鸟作为搜索代理,利用访问表记录访问信息。算法核心包括三种飞行技能建模(全向、对角线和轴向飞行)以及对应的数学公式实现。Python实现展示了种群初始化、适应度计算和觅食行为模拟等关键步骤。AHA以其高效的全局搜索能力、良好收敛性和鲁棒性,在复杂优化问题中表现优异。
前端怎么调取后台数据?
前端调取后台数据
Simulink中搭建一个包含PID控制的压电陶瓷快反镜模型
这个模型只是一个基本框架,你需要根据实际的系统参数和要求进行调整和优化。希望这些步骤能帮助你在Simulink中搭建所需的模型。
html表单获取后台数据,使用form表单提交请求如何获取后台返回的数据?
问题描述一般的form表单提交是单向的:只能给服务器发送数据,但是无法获取服务器返回的数据,也就是无法读取HTTP应答包。想要真正的半双工通讯一般需要使用Ajax, 但是Ajax对文件传输也很麻烦。解决方法方法一:jQuery封装了一个form表单提交有回调功能的方法导入jqueryjquery-form.js如下: 一个上传文件的form请选择头像:js实现// $(function ())是文...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
springmvc--前台表单数据传到后台
1: 基本数据类型(int, string,.....) 1.1: 页面 1.2: 控制器
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
C#后台把多个字符串结果封装成JSON格式并返回前台解析
问题引出在前后台的数据交互中常常会涉及到这样的情形,前台传递一个条件,后台往往一次都是只能返回一个统计结果,于是乎当需要多个统计结果的时候,很多都采用多次调用前后台交互方法来获取,这样就往往会做了多次的数据库交互,浪费了不少资源,如果能一次性返回的话,只执行一次肯定效率也会有不少的提高,当然最简单的一种你可以采用及其特殊的连接符把所有的结果连接为一串普通字符串,但还有一种就是封装成为Json
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
MVC ajax Post Json数据到后台的几个注意点
今天在通过ajax向MVC后台post实体对象时,发生了400、415、405等错误,或者后台实体参数获取不到对应的值,总结问题如下: 1)前端data参数始终要通过过JSON。stringfy(data)来封装; 2)若后台接口为Delete([FromBody] int id)这种简单模式,则前端封装模式如下: 3)若后端为实体对象接口 前端这样封装: 注意数据类型必须一致,后端为Date类型的,前端不能想当然的给与字符串"2021-04-15"这种,一定要用日期! 还有,MV.
基本数据类型和封装类型的区别
基本数据类型和封装类型的区别基本数据类型基本数据类型介绍封装数据类型基本数据类型对应的封装类介绍基本数据类型与封装类对应关系对照表String类他们的区别总结合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片asdasd用来存储数据,增强功能,使他们能通过“.”操作符完成一些操作。2.所有的封装类的名字都以一个大写字母开头,并与相应的基本...
简易的安卓天气app(一)——解析Json数据、数据类封装
简易天气app
关于8个基本数据类型及他们的封装类
首先,八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char; 它们的封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。 因为对基本数据类型封装之后,封装类有可以有方法和属性,然后就可以利用这些方法和属性来处理数据,比如Ingeter对象
数据类型的封装类
引入基本数据分装类的原因:基本数据类型不是类,不能产生对象,java引进基本数据类型的封装类,以统一的机制处理所有的数据类型 整数类型的封装类 byte Byte short Short int Integer long Long 浮点类型的封装类 float Float double Double 字符类型的封装类 char Character 布尔类型封装类 boolean Boolean 基本数据类型封装类的变量和方法 Int
八大基本数据类型的大小,以及他们的封装类
java中有八种基本数据类型,int,double ,long ,float, short,byte,character,boolean;和他们对应的封装类型是:Integer,Double ,Long ,Float, Short,Byte,Character,Boolean; 在java中使用基本类型来存储语言支持的基本数据类型,这里没有采用对象,而是使用了传统的面向过程语言所采用的基本类在型
基本数据类型封装类型
基本数据类型封装类型的自动装箱和拆箱基本数据类型封装类型自动装箱和拆箱 基本数据类型封装类型 在java的学习中每一个基本数据类型都有一个与之相对应的引用数据类型,基本数据类型一般用数据的运算,布尔逻辑,关系等运算,但是无法创建对象,也就无法调用数据类型相关的方法。可以通过基本数据类型的封装类型来进行方法的调用。以int类型作为举例。 在java的学习中每一个基本数据类型都有一个与之相对应的引用数据类型,基本数据类型一般用数据的运算,布尔逻辑,关系等运算,但是无法创建对象,也就无法调用数据类型相关的方法。可
JavaScript获取真实数据类型(封装)
今天碰到了个需要对比数据类型的问题,每次取数据类型用的typeof又不准确,于是就用了Object的原型对象去获取数据类型。 原理 Object上有两个toString方法,一个在Object本身,另一个在Object.prototype原型对象上。Object.prototype上的toString()方法具有判断数据类型的功能。默认情况下,toString() 方法被每个 Object 对象继承。如果此方法在自定义对象中未被覆盖,toString() 返回 “[object type]”,其中
Java基本数据类型及其封装类
子曰:学而时习之,不亦乐乎。 java中有八种基本数据类型,分别是: boolean(布尔型) byte(字节型) char(字节型) short(短整型) int(整型) long(长整型) float(浮点型) double(双精度浮点型) 对应的封装类分别是: Boolean
274



被折叠的 条评论
为什么被折叠?



