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)

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

 

 

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

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。