XgimiFsHttpClient诞生的初衷

HttpClient

AsyncHttpClient

上面这两个库已经能很好的解决你日常开发APP的POST,GET请求,前提是设计师不挑战你,不然你真的很纠结。

期初我只想解决自己在APP开发中遇到的问题,因为代码写的不是很好,只是为了满足自己的那点需求而已。

=============================================

【1】更人性化的提示网络错误信息,而不是烦人的作者的英文提示.

【2】能更好的做好国际化.

【3】减少参数的烦人传递操作.

【4】能自动化的解决JSON解析问题,并传回相关类.

【5】能在请求过程中,取消请求,并且无任何操作.

=========================================

【基础框架无法解决的一些问题】

new AsyncHttpClient().post(url, params, new AsyncHttpResponseHandler() {
   @Override
   public void onSuccess(int arg0, Header[] arg1, byte[] responseBody) {
    String str = new String(responseBody);
     // ... ... 
   }
   @Override
   public void onFailure(int arg0, Header[] arg1, byte[] arg2,
     Throwable arg3) {
         // ... ... 
      }
  });
 }

上面的代码会遇到这种的问题,

如果你是一个追求用户体验和用户痛点的和好的程序员的人,

你会极力做好用户提示,还会想办法减少自己写代码的工作量.

下面的说出的种种问题,不是说那些开源库不好,只是举出他们无法帮我们做的事情,而需要我们改进的地方而已.

1. 如果网络是不存在的,可能会报异常,你能想象是什么异常错误,是英文的,对于一款APP来说,

你对用户提示这样错误信息是正确的么,是人性化的么?

正确的方法应该是显示,"网络错误"或者"网络未知错误" 告知用户,而且这样的提示信息人性化并且是可以国际化的,

要可以英文,日文,等等,而不是这样固定死的提示.

或者你可以这样说,我可以在程序前面加判断网络是否存在,确实是可以的,因为这样更人性化点,我们来看另一种错误.

2. 网络超时:

上面的提示信息确实让用户恼火,其实应该给用户提示 “网络超时”!! 而且这个“网络超时”这几个字应该可以国际化的.

3.JSON解析问题:

因为开源框架要考虑通用性问题,它将JSON,XML等等操作的解析交给你去做,这样是非常好的。

但是我只想做好一件事情,就是APP能和服务器通信,通信的过程是能更好,方便的解析数据,能让我写代码更方便。

我就在想,那为何不将这一块写进去,我不需要考虑那么多通用性,只关心自己如何写好APP就可以了。

String str = new String(responseBody);
GJson.fromJson(str, class);

我只想和服务器通信,那我为何不封装起来,数据成功了,然后自己JSON解析,返回这个类就好了.

4.需要传入很多参数的时候,特别烦人.

 RequestParams params = new RequestParams();
  params.put("username", "冰雪情缘");
  params.put("pwd3", "cc03e747a6afbbcbf8be7668acfebee5");
  params.put("pwd1", "cc03e747a6afbbcbf8be7668acfebee5");
  params.put("pwd2", "cc03e747a6afbbcbf8be7668acfebee5");
  ... ... // 参数少还可以,参数很多,七,八个或者十多个怎么办?

于是我就想到,是否可以添加两个这样的方法

doHttpPost(url, parasm, class, callback)

doHttpPost(url, class, class, callback)

只需要新建一个类,将类的数据填充好,然后传进去,我反射自己填充到字典中去,岂不是很省事,而且这样有了类,看起来也舒服,也明了。

==========================================

时间: 2024-10-25 04:35:10

XgimiFsHttpClient诞生的初衷的相关文章

React的设计哲学 - 简单之美

React最初来自Facebook内部的广告系统项目,项目实施过程中前端开发遇到了巨大挑战,代码变得越来越臃肿且混乱不堪,难以维护.于是痛定思痛,他们决定抛开很多所谓的“最佳实践”,重新思考前端界面的构建方式,于是就有了React. React带来了很多开创性的思路来构建前端界面,虽然选择React的最重要原因之一是性能,但是相关技术背后的设计思想更值得我们去思考.之前我也曾写过一篇React的入门文章,并提供了示例代码,大家可以结合参考. 上个月React发布了最新的0.13版,并提供了对ES

无人驾驶,敢问路在何方?

在美国科幻电影和小说中,我们经常能看到一些有关无人驾驶的桥段,早在笔者小学时候,CCTV就曾引进过一部美国电视剧,名字叫<霹雳游侠>,剧中的二号主演就是一部名叫基恩的可自行驾驶高级轿车,他不仅能独立完成超车.追踪.躲避追杀等工作,而且还具有人类的思维和语言,必要时亦能帮助男主人泡到酒吧漂亮的女孩子.显然,基恩的功能有点过于超现实,相比之下,十几年之后的<机动战士高达SEED>的场景更加接近现实,在这部电影的世界里,消费者只需要进行简单呼叫,就会有无人驾驶的汽车停在面前,而整个无人驾

React的设计思想——理解JSX和Component

基于HTML的前端界面开发正变得越来越复杂,其本质问题基本都可以归结于如何将来自于服务器端或者用户输入的动态数据高效的反映到复杂的用户界面上.而来自Facebook的React框架正是完全面向此问题的一个解决方案.React带来了很多开创性的思路来构建前端界面,虽然选择React的最重要原因之一是性能,但是相关技术背后的设计思想更值得我们去思考. React项目经理Tom Occhino曾经阐述React诞生的初衷,他提到React最大的价值究竟是什么?是高性能虚拟DOM.服务器端Render.

跨终端响应式页面设计入门

跨终端/响应式页面不外乎是让各种分辨率的屏幕都能顺利阅读你的页面,常规来讲一个跨终端页面,在宽屏的电脑上看和在小屏幕手机上看的布局是不同的,布局不同的原因是为了让读者更好地阅读你的页面,见下图: 这里有点要提到的是,我们常规会将PC版的页面和移动端设备的页面独立开来设计,这样会让PC端的页面布局更灵活和好维护.如果你希望你的页面能适配包括PC端在内的任何设备,那么下面几个小工具可以方便你顾及旧版本IE所存在的困扰: ⑴ IE8-不能识别HTML5的<hearder>.<article&g

~~ 近十年WEB技术发展历程 ~~

ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生.传奇,大话西游第一代网游一时风靡.我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号. 彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,"您填写的信息有误,请重填".然后跳转回注册页面,以此循环.我现在时常想,如果当时ajax能普及开来,我就可以省2块钱了. 那么ajax是什么? 首先ajax是一种技术.以往的网页交互方式,用户在点击一个按钮后,比如

恐惧未来,谁在拒绝机器时代?

现在,机器取代人工已经成为越来越清晰的趋势,最早的应用领域应该是制造业和食品业,如今慢慢渗透到服务.金融领域,在可预见的未来,娱乐行业势必也会大规模地使用机器人,但任何新时代的来临,总会充满着坎坷与荆棘,一方面,突破技术瓶颈本来就不容易,更何况高级机器人需要一大批的技术同时达到精进的状态:另一方面,机器人要全面渗透于国民生产生活中,仍需要受到法制.伦理和政令的制约,于是如你所见,机器时代的进程并不如设想地那般迅速,甚至有些倒退或者避而不用的情况,简单来说,真不是所有人都希望机器时代来临. 理论上

十年WEB技术发展历程

一个小分享,知识有限,列了几个我觉得颠覆性的发展,抛砖引玉. ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生.传奇,大话西游第一代网游一时风靡.我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号. 彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,"您填写的信息有误,请重填".然后跳转回注册页面,以此循环.我现在时常想,如果当时ajax能普及开来,我就可以省2块钱了. 那么ajax是什么? 首先aj

「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉:既可让人明白「为何如此设计」,即「知其然更知其所以然」:也能剥离一些琐碎的细节,让更多没那么多时间与精力.或者背景知识不足的朋友,对核心方法和思路,多一点理解,即,给人提供一种「纲举目张提纲挈领抽丝剥茧」的可能性. 机缘巧合,俺今天就决定抛砖引玉,写一篇不那么好的工程文档.也期望对本文话题感兴趣的朋

移动端web开发

跨终端/响应式页面不外乎是让各种分辨率的屏幕都能顺利阅读你的页面,常规来讲一个跨终端页面,在宽屏的电脑上看和在小屏幕手机上看的布局是不同的,布局不同的原因是为了让读者更好地阅读你的页面,见下图: 这里有点要提到的是,我们常规会将PC版的页面和移动端设备的页面独立开来设计,这样会让PC端的页面布局更灵活和好维护.如果你希望你的页面能适配包括PC端在内的任何设备,那么下面几个小工具可以方便你顾及旧版本IE所存在的困扰: ⑴ IE8-不能识别HTML5的<hearder>.<article&g