一:对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. SQL Server安全(4/11):许可(Permissions)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  2. JVM Tomcat性能实战

    本节只是介绍实战部分,具体的理论参数,请自行百度. 所需工具:linux服务器  Jmeter测试工具  xshell   一个web应用 Tomcat的JVM参数可以配置在catalina.sh,如 ...

  3. angularJs指令深度分析

    AngularJs的指令定义大致如下 angular.module("app",[]).directive("directiveName",function() ...

  4. noip 模拟赛 匹配 //贪婪策略

    匹配(match.pas/match.c/match.cpp) [题目描述] 到了新的学期,Mcx痛苦的发现通用技术课居然是有实验课的,这样的话他就不得不放弃写作业的想法而去做一件类似于搭积木的事情. ...

  5. MySql LAST_INSERT_ID 【插入多条数据时】

    LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generat ...

  6. javascript的一些bug

    JavaScript是如今最受欢迎的编程语言之一,但受欢迎同时就是该语言自身的各种特性带来的副作用,无论该语言多美妙,每天还是有成千上万的程序员弄出一堆bug.先不要嘲笑别人,或许你也是其中之一. 给 ...

  7. 【C#】第3章学习要点(三)--常用类和结构的用法

    分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.DateTime结构和TimeSpan结构 DateT ...

  8. Firemonkey 使用 TImage 显示动画图片

    参考官网:http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Ani.TBitmapListAnimation 延伸阅读:[工具] GIF ...

  9. Java中使用Jedis操作Redis

    使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...

  10. ahjesus Ubuntu配置svn服务器

    转载自http://www.cnblogs.com/ximu/articles/2119136.html 亲测可用 一.SVN安装1.安装包$ sudo apt-get install subvers ...