Android Http请求框架二:xUtils 框架网络请求

1、xUtils 下载地址

    github 下载地址  : https://github.com/wyouflf/xUtils

 

2、关于网络请求的方法

 

package  com.jike.shanglv.NetAndJson;
 
import  java.io.File;
 
import  com.lidroid.xutils.HttpUtils;
import  com.lidroid.xutils.exception.HttpException;
import  com.lidroid.xutils.http.RequestParams;
import  com.lidroid.xutils.http.ResponseInfo;
import  com.lidroid.xutils.http.ResponseStream;
import  com.lidroid.xutils.http.callback.RequestCallBack;
import  com.lidroid.xutils.http.client.HttpRequest;
import  com.lidroid.xutils.util.LogUtils;
 
public  class  HttpUtil {
 
     String result =  ""  ;
 
     /**
      * Get请求  异步的
      * @param url  服务器地址
      * @param userkey
      * @param str
      * @param sign 签名
      * @return
      */
     public  String xutilsGet( String url , String userkey , String str , String sign  ){
         RequestParams params =  new  RequestParams();
         params.addQueryStringParameter( "userkey" , userkey );
         params.addQueryStringParameter( "str" , str );
         params.addQueryStringParameter( "sign" , sign );
         HttpUtils http =  new  HttpUtils();
         http.configCurrentHttpCacheExpiry( 1000  10 );  //设置超时时间   10s
         http.send(HttpRequest.HttpMethod.GET,
                 url ,
                 new  RequestCallBack<String>(){
             @Override
             public  void  onLoading( long  total,  long  current,  boolean  isUploading) {
 
             }
 
             @Override
             public  void  onSuccess(ResponseInfo<String> responseInfo) {
                 result = responseInfo.result.toString() ;
             }
 
             @Override
             public  void  onStart() {
             }
 
             @Override
             public  void  onFailure(HttpException error, String msg) {
             }
         });
 
         return  result ;
     }
 
     /**
      * Post请求 异步的
      * @param url
      * @param userkey
      * @param str
      * @param sign
      * @return
      */
     public  String xutilsPost( String url , String userkey , String str , String sign ){
         RequestParams params =  new  RequestParams();
         params.addQueryStringParameter( "userkey" , userkey );
         params.addQueryStringParameter( "str" , str );
         params.addQueryStringParameter( "sign" , sign );
 
         // 只包含字符串参数时默认使用BodyParamsEntity,
         // 类似于UrlEncodedFormEntity("application/x-www-form-urlencoded")。
         //params.addBodyParameter("name", "value");
 
         // 加入文件参数后默认使用MultipartEntity("multipart/form-data"),
         // 如需"multipart/related",xUtils中提供的MultipartEntity支持设置subType为"related"。
         // 使用params.setBodyEntity(httpEntity)可设置更多类型的HttpEntity(如:
         // MultipartEntity,BodyParamsEntity,FileUploadEntity,InputStreamUploadEntity,StringEntity)。
         // 例如发送json参数:params.setBodyEntity(new StringEntity(jsonStr,charset));
 
         HttpUtils http =  new  HttpUtils();
         http.configCurrentHttpCacheExpiry( 1000  10 );  //设置超时时间   10s 
         http.send(HttpRequest.HttpMethod.POST ,
                 url ,
                 params,
                 new  RequestCallBack<String>() {
 
             @Override
             public  void  onStart() {
             }
 
             @Override
             public  void  onLoading( long  total,  long  current,  boolean  isUploading) {
             }
 
             @Override
             public  void  onSuccess(ResponseInfo<String> responseInfo) {
                 result = responseInfo.result.toString() ;
             }
 
             @Override
             public  void  onFailure(HttpException error, String msg) {
 
             }
         });
 
         return  result ;
     }
 
     /**
      * 带上传文件的 Post请求   异步的
      * @param url
      * @param userkey
      * @param str
      * @param sign
      * @param picString  文件的地址
      * @return
      */
     public  String xutilsFilePost( String url , String userkey , String str , String sign , String picString ){
         RequestParams params =  new  RequestParams();
         params.addQueryStringParameter( "userkey" , userkey );
         params.addQueryStringParameter( "str" , str );
         params.addQueryStringParameter( "sign" , sign );
 
         // 只包含字符串参数时默认使用BodyParamsEntity,
         // 类似于UrlEncodedFormEntity("application/x-www-form-urlencoded")。
         //params.addBodyParameter("name", "value");
 
         // 加入文件参数后默认使用MultipartEntity("multipart/form-data"),
         // 如需"multipart/related",xUtils中提供的MultipartEntity支持设置subType为"related"。
         // 使用params.setBodyEntity(httpEntity)可设置更多类型的HttpEntity(如:
         // MultipartEntity,BodyParamsEntity,FileUploadEntity,InputStreamUploadEntity,StringEntity)。
         // 例如发送json参数:params.setBodyEntity(new StringEntity(jsonStr,charset));
         params.addBodyParameter( "picture" new  File( picString )) ;
 
         com.lidroid.xutils.HttpUtils http =  new  com.lidroid.xutils.HttpUtils();
         http.send(HttpRequest.HttpMethod.POST ,
                 url ,
                 params,
                 new  RequestCallBack<String>() {
 
             @Override
             public  void  onStart() {
             }
 
             @Override
             public  void  onLoading( long  total,  long  current,  boolean  isUploading) {
             }
 
             @Override
             public  void  onSuccess(ResponseInfo<String> responseInfo) {
                 result = responseInfo.result.toString() ;
             }
 
             @Override
             public  void  onFailure(HttpException error, String msg) {
             }
         });
 
         return  result ;
     }
 
     //-------------------以上的代码 是 异步请求的, 以下的代码是同步请求的-------------------------//<br>
     /**
      * Get同步请求 必须在异步块儿中执行
      * @param url
      * @param userkey
      * @param str
      * @param sign
      * @return
      */
     private  String xutilsGetSync(String url , String userkey , String str , String sign ) {
         RequestParams params =  new  RequestParams();
         params.addQueryStringParameter( "userkey" , userkey );
         params.addQueryStringParameter( "str" , str );
         params.addQueryStringParameter( "sign" , sign );
         HttpUtils http =  new  HttpUtils() ;
         http.configCurrentHttpCacheExpiry( 1000  10 );  //设置超时时间 
         try  {
             ResponseStream responseStream = http.sendSync(HttpRequest.HttpMethod.GET,
                     url ,
                     params ) ;
             //int statusCode = responseStream.getStatusCode();
             //Header[] headers = responseStream.getBaseResponse().getAllHeaders();
             return  responseStream.readString();
         catch  (Exception e) {
             LogUtils.e(e.getMessage(), e);
         }
         return  null ;
     }
     
     /**
      * Post同步请求 必须在异步块儿中执行
      * @param url
      * @param userkey
      * @param str
      * @param sign
      * @return
      */
     private  String xutilsPostSync(String url , String userkey , String str , String sign ) {
         RequestParams params =  new  RequestParams();
         params.addQueryStringParameter( "userkey" , userkey );
         params.addQueryStringParameter( "str" , str );
         params.addQueryStringParameter( "sign" , sign );
         HttpUtils http =  new  HttpUtils() ;
         http.configCurrentHttpCacheExpiry( 1000  10 );  //设置超时时间 
         try  {
             ResponseStream responseStream = http.sendSync(HttpRequest.HttpMethod.POST ,
                     url ,
                     params ) ;
             //int statusCode = responseStream.getStatusCode();
             //Header[] headers = responseStream.getBaseResponse().getAllHeaders();
             return  responseStream.readString();
         catch  (Exception e) {
             LogUtils.e(e.getMessage(), e);
         }
         return  null ;
     }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值