一:对Http不了解的请看

Android Http请求框架一:Get 和 Post 请求

二、正文

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 ;
} //-------------------以上的代码 是 异步请求的, 以下的代码是同步请求的-------------------------//
/**
* 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;
}
}

Android Http请求框架二:xUtils 框架网络请求的更多相关文章

  1. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  2. Android App 开发常用的xUtils框架

      最近搜了一些框架供初学者学习,比较了一下XUtils是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少,下面是介绍: 鉴于大家的热情,我又写了 ...

  3. 学习RxJava+Retrofit+OkHttp+MVP的网络请求使用

    公司的大佬用的是这一套,那我这个菜鸟肯定要学习使用了. 我在网上找了很多文章,写的都很详细,比如 https://www.jianshu.com/u/5fd2523645da https://www. ...

  4. Android 最早使用的简单的网络请求

    下面是最早从事android开发的时候写的网络请求的代码,简单高效,对于理解http请求有帮助.直接上代码,不用解释,因为非常简单. import java.io.BufferedReader; im ...

  5. android通过fiddler代理,抓取网络请求

    安装fiddler过程省略 1, 2, 3, 4,手机需要跟电脑处于同一局域网,设置网络代理为电脑在局域网内的ip,端口为3步设置的port 5,电脑就可以通过fiddler监控手机的所有网络请求了( ...

  6. VueJS搭建简单后台管理系统框架 (二) 模拟Ajax数据请求

    开发过程中,免不了需要前台与后台的交互,大部分的交互都是通过Ajax请求来完成,在服务端未完成开发时,前端需要有一个可以模拟Ajax请求的服务器. 在NodeJs环境下,通过配置express可访问的 ...

  7. android天气查询(二)之网络json数据的获取

    前面一篇文章介绍了如何使用ksoap获取天气信息,但是使用的网络资源受到了限制,所以我们这里会采用第二种方法,可以无限制的获取.http://m.weather.com.cn/data/1010101 ...

  8. Spring Boot 系列(二)单元测试&网络请求

    实际开发中,Junit单元测试是必不可少的.在spring-boot 中可以通过测试模块(spring-boot-starter-test)快速使用单元测试功能. 开始 本示例在 spring boo ...

  9. android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件

    网络请求是全部App都不可缺少的功能,假设每次开发都重写一次网络请求或者将曾经的代码拷贝到新的App中,不是非常合理,出于此目的,我希望将整个网络请求框架独立出来,与业务逻辑分隔开,这样就能够避免每次 ...

  10. 基于Retrofit+RxJava的Android分层网络请求框架

    目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...

随机推荐

  1. CSS魔法堂:Absolute Positioning就这个样

    前言 当我们以position:absolute之名让元素脱离Normal flow的控制后,以为通过left和top属性值即可让元素得以无限的自由时,却发现还有各种神秘的力量左右着它的来去,于是我们 ...

  2. 使用html和css的一些经验

    1.注释须知:html中注释不能这样写: <div></div><!--------这是错误写法-------> <div></div>&l ...

  3. 关于jq ajax封装以及error的报错参数

    jq的ajax完整版本 $.ajax({ url: "GetCityByPId.ashx", data: {pId:pid}, dataType: "JSON" ...

  4. SQL_递归查询(复杂查询示例)

    需求: 一篇文章里有很多评论,每个评论又有很多回复评论,要求: 页面将文章展示出来,且文章的主评论按照评论时间分页展示,回复评论的评论完全展示在每个主评论下面,且按照回复时间排序 最终查询结果SQL查 ...

  5. iOS阶段学习第17天笔记(NSFileManager-NSFileHandle-文件操作)

    iOS学习(OC语言)知识点整理 一.单例模式 1)单例是一种编程思想,一个设计模式,与语言无关在采用了单例对象的应用程序中,需要单例类自行提供实例化单例对象, 不管实例化单例对象多少次,只有一个对象 ...

  6. Web端权限管理新增实用功能:批量增加操作,简单方便快速!

    扩展了吉日嘎拉的Web端权限管理功能后,每次添加菜单倒没啥问题,毕竟菜单的数量有限,可是每增加一个模块.功能或者说权限控制点,就得针对各种常规操作,新增很多遍. 浪费时间,还容易出错.新增了一个字典表 ...

  7. pageEncoding的默认设置

    windows-->preference-->myeclipse-->files and editors-->jsp 右侧 Encoding 选择  ISO 10646/Uni ...

  8. Word, PPT和Excel的常用技巧(持续更新)

    本文的目的是记录平时使用Word, PowerPoint和Excel的过程中的一些小技巧,用于提升工作效率. 此文会不定期的更新,更新频率完全取决于实际使用遇到的问题的次数. 目录 Word Powe ...

  9. String和StringBuffer的区别

    1.选自http://szh-java.iteye.com/blog/1666630 String 1,Stirng是对象不是基本数据类型 2,String是final类,不能被继承.是不可变对象,一 ...

  10. 基础-WeakReference

    一.概述 为了更好的理解WeakHashMap的原理,我们有必要先来了解一下WeakReference的作用及实现原理.Java中有一个专门的包java.lang.ref,里面定义了我们通常所说的几种 ...