一:对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. Azure MySQL PaaS (2) MySQL PaaS修改时区

    <Windows Azure Platform 系列文章目录> 先挖坑,关于Azure My PaaS的入门介绍以后再写. 我们在创建My SQL PaaS服务的时候,默认的时区是UTC时 ...

  2. 编写Chrome扩展程序

    Chrome的扩展程序很多,也很容易入门,可以来简单实现一下 看看,慢慢就能实现出一个扩展程序来 每个扩展程序应用一般会包含: 一个manifest清单文件 html文件 js文件 其他文件等 可以看 ...

  3. Dispose() C# 优化内存

    public void Dispose() { ((IDisposable)_designer).Dispose(); } #region IDisposable Support private bo ...

  4. 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  5. node.js中使用https请求报CERT_UNTRUSTED的问题解决

    只要调用了没有受信的https就会报错:CERT_UNTRUSTED 简单的解决方法就是设置环境变量回避非授信证书的问题. 只要在请求的代码之前加上如下代码即可: process.env.NODE_T ...

  6. 【c#搬砖记】用Docx导出word格式的docx文件

    DocX开源网址:http://docx.codeplex.com/ 1.引入DocX.dll 调用ReplaceText()方法替换模板中的字符.只支持docx格式的word文档 using (Do ...

  7. 暴风冯鑫:去美国香港的99%都亏,互联网公司打死都要回A股

        “上市之后,我回答得最多的两句话:一句是运气好:另一句是有好运气要好好地使用它.” 5月18日,暴风科技上市55天后,首享科技大厦办公室里,暴风科技CEO冯鑫这样对我说. 在经历了36个涨停之 ...

  8. SQL查询中in、exists、not in、not exists的用法与区别

    1.in和exists in是把外表和内表作hash(字典集合)连接,而exists是对外表作循环,每次循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的,如果查询的两个表大小 ...

  9. 背水一战 Windows 10 (8) - 控件 UI: StateTrigger

    [源码下载] 背水一战 Windows 10 (8) - 控件 UI: StateTrigger 作者:webabcd 介绍背水一战 Windows 10 之 控件 UI VisualState 之 ...

  10. Java工程图标前面的红色叹号

    有时Java工程图标前面会出现一个红色的叹号,这是因为工程引入的jar包不存在(或者被删除.移动)造成的. 右键点击工程,选择Build Path->Configure Build Path,弹 ...