zoukankan      html  css  js  c++  java
  • Android学习之xUtils --- HttpUtils模块

    HttpUtils是解决日常工作过程中繁杂的上传下载文件以及各种Get和post请求的必备工具类。

    通过这个类, 非常方便的进行网络访问下载等操作,不必再再写那么冗长的代码。

    HttpGet请求 和 HttpPost请求

     

      

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。 其中最常用的就是GET,POST 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。 根据HTTP规范,POST表示可能修改变服务器上的资源的请求 GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4
    %BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中
    的XX为该符号以16进制表示的ASCII。 因为GET方式提交的参数是可见的,因此有可能造成数据的泄露,从这方面讲,GET没有POST安全. GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据 POST把提交的数据则放置在是HTTP包的包体中。相对安全,能传送较多的数据 有关GET和POSt请求方式更多知识,请见:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

    HttpUtils怎样进行两种方式的请求呢?

    HttpUtils类有一个send方法,如下:
    

    send(HttpRequest.HttpMethod method, String url, RequestParams params,
    RequestCallBack<T> callBack)

     
    send(HttpRequest.HttpMethod method, String url,RequestCallBack<T> callBack)



    send方法参数列表:
    1. HttpRequest.HttpMethod method 请求方式
    HttpRequest.HttpMethod.GET get方式
    HttpRequest.HttpMethod.POST post方式
    2.String url 请求网址
    3.RequestParams params 参数对象,对象以键值对形式存储,自动拼接(没有参数,就使用三个参数的send方法)

    对象创建: RequestParams params = new RequestParams();
    params.addQueryStringParameter("method", "info");
    params.addQueryStringParameter("access_token",
    "3.1042851f652496c9362b1cd77d4f849b.2592000.1377530363.3590808424-248414");
    4.RequestCallBack<T> callBack 回调通知接口,
    onSuccess 请求这一动作成功之后的回调方法
    onFailure 失败的回调,不是指的服务器返回数据告诉你失败,而是出现网络错误啊 服务器出现问题啊等等这种错误

     
    HttpUtils httpUtils = new HttpUtils();
     httpUtils.send(HttpRequest.HttpMethod.GET, "http://www.baidu.com", new RequestCallBack<String>() {
                @Override
                //请求动作成功之后的回调
                public void onSuccess(ResponseInfo<String> responseInfo)  {
    

    }
    // 请求动作失败的回调,不是指的服务器返回数据告诉你失败,而是出现网络错误啊 服务器出现问题啊等等这种错误 @Override public void onFailure(HttpException error, String msg) {
    } });

    上传文件也是用send方法。

    下载文件:

      
    HttpUtils的download方法(支持断点续传):
    
    以下都是该方法的重载:
             参数:
               1. String url 下载地址
               2. String target  下载文件存储位置
               3. RequestCallBack<File> callback 回调通知接口
    
             download(String url, String target,RequestCallBack<File> callback) { }
    
            download(String url, String target, boolean autoResume, RequestCallBack<File> callback) {}
    
    
              4.  boolean autoResume  为true时,如果目标文件存在,接着未完成的部分继续下载。
               5.boolean autoRename  为true时,如果从请求返回信息中获取到文件名,下载完成后自动重命名
             download(String url, String target,boolean autoResume, boolean autoRename, RequestCallBack<File> callback) {}
    
            // 加上参数的下载
             download(String url, String target, RequestParams params, RequestCallBack<File> callback) {}
    
             download(String url, String target, RequestParams params, boolean autoResume, RequestCallBack<File> callback) { }
    
             download(String url, String target,RequestParams params, boolean autoResume, boolean autoRename, RequestCallBack<File> callback) {}
    
            // 指定访问网络方式
              download(HttpRequest.HttpMethod method, String url, String target,RequestParams params, RequestCallBack<File> callback) {}
    
             download(HttpRequest.HttpMethod method, String url, String target,RequestParams params, boolean autoResume, RequestCallBack<File> callback) {}
    
             download(HttpRequest.HttpMethod method, String url, String target, RequestParams params, boolean autoResume, boolean autoRename, RequestCallBack<File> callback) {}
            

    这里是我自己的一些总结,更多更详细的知识大家往这里看:http://my.oschina.net/jack1900/blog/174439

    讲的很细,也很易懂,大家一起学习喽。

  • 相关阅读:
    大数据-数据分析-numpy库-数组的深拷贝和浅拷贝
    windows环境下mysql主从配置
    C#定时发送邮箱设置
    论《LEFT JOIN条件放ON和WHERE后的区别》
    记录成长
    RobotFramework+Selenium如何提高脚本稳定性
    Jekins 插件Extended Choice Parameter显示Json Parameter Type遇到的问题
    nGrinder 参数使用
    Jenkins REST API 实例
    java ee config / nacos / shit Alibaba Middleware
  • 原文地址:https://www.cnblogs.com/mafangfang/p/4926238.html
Copyright © 2011-2022 走看看