一:对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. Android RxJava操作符的学习---功能性操作符--网络请求出错重连(结合Retrofit)

    1. 需求场景 2. 功能说明 功能需求说明 功能逻辑  实例说明 在本例子中:采用Get方法对 金山词霸API 发送网络请求 通过 断开网络连接 模拟 网络异常错误(恢复网络即可成功发送请求) 限制 ...

  2. Android RxJava操作符的学习---变换操作符---网络请求嵌套回调

    变换操作符的主要开发需求场景 = 嵌套回调(Callback hell) 下面,我将采用一个实际应用场景实例来讲解嵌套回调(Callback hell) 1. 需求场景 1.1 背景 需要进行嵌套网络 ...

  3. 计算机网络中请求超时是什么意思,网络请求超时怎么解决

    我们知道不少朋友在上网的时候,会遇到网络请求超时的情况,那造成网络请求超时的原因是什么呢?网络请求超时就是在程序默认的等待时间内没有得到服务器的响应.跟着小编一起来看看请求超时解决方法. 网络请求超时 ...

  4. 微信小程序框架封装登录,网络请求等公共模块及调用示例

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 这个公共模块封装了session的获取,和fromId发送,showToast成功和失败的弹窗. 微信小程序公 ...

  5. 二、Swift网络请求回来的数据我这样取

    网络请求框架Alamofire 源码地址 Swift 2.3 Alamofire3.0版本支持 iOS 8 Swift 3 Alamofire4.0以上版本支持 iOS 9及以上系统 json数据: ...

  6. Android 输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译

    输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译 首先在xml文件上界面布局 采用LinearLayout来布局界面,并添加一个按钮来进行网络请求翻译,在添加一个EditText来输入我 ...

  7. Tribon二次开发-网络请求

    近日遇到一个需求,将从Tribon模型中抽取的数据,通过调用业务系统A的接口写入,在业务系统中作进一步的处理和展示.由于Tribon二次开发默认的Python版本是2.3,与目前市场上Python2. ...

  8. Android 获取当前网速质量调整网络请求

    在开发中,有时候常常需要根据用户当前的网速来做一些操作,比如图片的加载,当网速非常好的时候,比如连接的是wifi,我们就会下载高分辨率的图片,反之,当用户使用的是2g网时,我们则给他下载低分辨率的小图 ...

  9. dio设置自定义post请求_Flutter中的http网络请求

    前言 由于刚过完年工作比较紧张,文章已经四周没有更新了,非常抱歉!接下来依然会尽量保持每周更新! 本篇介绍Flutter中网络请求相关api的使用,Flutter在Flutter engine中提供了 ...

  10. ios开发循环网络请求_iOS开发--HTTP的网络请求状态代码详解

    网络请求是iOS项目的一个大部分,而且大部分的iOS的项目的网络请求是根据AFN进行的二次封装,我们查看返回的结果或者error的网络错误code,从而确认错误类型,针对行的进行调试修改. 说明:一下 ...

最新文章

  1. HDU 3398 String
  2. 浙江大学PAT上机题解析之1010. 一元多项式求导 (25)
  3. 初识ABP vNext(6):vue+ABP实现国际化
  4. HDFC的完整形式是什么?
  5. 安全预警:独立发布的Oracle严重 CVE-2018-3110 公告
  6. 此次边路调整系统推荐射手走哪路_王者荣耀:S15射手最新梯度排行,马可T2,狄仁杰T1,T0仅剩两位...
  7. (29)VHDL实现时钟分频
  8. java零碎要点---struts2中redirect和redirectAction的区别
  9. SQL 语句语法简介(一)
  10. html5之websql深入理解
  11. TransE如何进行向量更新?
  12. java 汉字区位码表,中文汉字编码知识及各种中文编码对应的编码区间总结
  13. 谨以此写下本人安装riscv的全过程 简单易懂!!(本人环境是在ubuntu18.04中)
  14. 1688图片搜索淘宝商品接口
  15. 杭电数字电路课程设计-实验十-JK触发器设计实验
  16. 微信公众号网页授权40029错误,小程序微信支付前后端逻辑? (微信授权支付之 (篇一))
  17. 在Linux中运行Android软件
  18. ES修改默认的密码信息
  19. 别让灵魂跟不上我们的脚步
  20. ICPC Central Russia Regional Contest (CRRC 19)

热门文章

  1. 怎么在uefi解锁磁盘_系统重装时,如何秒判Windows启动是UEFI/Legacy?3步就够了!...
  2. 北航java大作业,北航成人继续教育 本科 计算机科学与技术 JAVA——大作业.doc
  3. pyqt5中sender方法介绍_【第五节】PyQt5事件和信号
  4. webstrom 运行 vue项目_vue3.0创建项目及API讲解(一)
  5. 为了OFFER,我加深学习,搞懂了栈
  6. 二十六、爬取拉钩网Python职位的数据
  7. 计算机里硬盘图标,计算机中在硬盘图标下面有个其他里PPS图标肿么删?
  8. 今日arXiv精选 | 11篇ICCV 2021最新论文
  9. Numpy:高性能科学计算和数据分析的基础包
  10. python-数据结构-栈