OkHttp工具类
- package test;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import javax.management.RuntimeErrorException;
- import okhttp3.Call;
- import okhttp3.Callback;
- import okhttp3.FormBody;
- import okhttp3.MediaType;
- import okhttp3.OkHttpClient;
- import okhttp3.Request;
- import okhttp3.RequestBody;
- import okhttp3.Response;
- /**
- * 发送http请求的工具类
- */
- public class HttpUtil {
- //放置请求的URL
- public class URL {
- public static final String REMOTE_ADDRESS = "http://47.94.166.158:8080/android_server/";
- //登陆
- public static final String LOGIN = REMOTE_ADDRESS + "user_login";
- //。。。。
- }
- /**
- * GET请求,不传参只获取结果
- * @param url url地址
- * @param callback 回调函数
- */
- public static void doGet(String url, Callback callback) throws IOException {
- //创建okHttpClient对象
- OkHttpClient mOkHttpClient = new OkHttpClient();
- //创建一个Request
- Request request = new Request.Builder()
- .url(url)
- .build();
- //new call
- Call call = mOkHttpClient.newCall(request);
- //请求加入调度
- call.enqueue(callback);
- }
- /**
- * 通用post请求(同步)
- * @param url 请求地址
- * @param paramNames 表单属性
- * @param paramValues 表单值
- * @throws IOException
- */
- public static String doPost(String url, String[] paramNames, String[] paramValues) throws IOException {
- OkHttpClient client = new OkHttpClient();
- FormBody.Builder builder = new FormBody.Builder();
- for (int i = 0; i < paramNames.length; i++) {
- builder.add(paramNames[i], paramValues[i]);
- }
- Request request = new Request.Builder()
- .url(url)
- .post(builder.build())
- .build();
- Call call = client.newCall(request);
- return call.execute().body().string();
- }
- /**
- * 通用post请求(异步)
- * @param url 请求地址
- * @param paramNames 表单属性
- * @param paramValues 表单值
- * @param callback 回调函数
- */
- public static void doPostAsync(String url, String[] paramNames, String[] paramValues, Callback callback) {
- OkHttpClient client = new OkHttpClient();
- FormBody.Builder builder = new FormBody.Builder();
- for (int i = 0; i < paramNames.length; i++) { builder.add(paramNames[i], paramValues[i]); }
- Request request = new Request.Builder()
- .url(url)
- .post(builder.build())
- .build();
- Call call = client.newCall(request);
- call.enqueue(callback);
- }
- /**
- * 文件上传(上传头像,视频)
- * @param url 请求地址
- * @param paramValues 上传的文件,头像为1个,视频可以同时上传多个
- */
- public static void fileUpload(final String url, final File file) {
- OkHttpClient client = new OkHttpClient();
- //文件类型
- MediaType TYPE_FILE = MediaType.parse("application/octet-stream");
- Request.Builder builder = new Request.Builder();
- for (int i = 0; i < paramValues.length; i++) {
- builder.post(RequestBody.create(TYPE_FILE, paramValues[i]));
- }
- Request request = builder.url(url)
- .build();
- Call call = client.newCall(request);
- call.enqueue(callback);
- }
- /**
- * 表单参数和文件同时请求(异步)
- * @param url 请求地址
- * @param paramNames 属性名
- * @param paramValues 属性值
- * @param callback 回调函数
- */
- }
OkHttp工具类的更多相关文章
- 超简单的okhttp封装工具类(上)
版权声明:转载请注明出处:http://blog.csdn.net/piaomiao8179 https://blog.csdn.net/piaomiao8179/article/details/ ...
- Android OkHttp网络连接封装工具类
package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...
- Android开源项目发现--- 工具类快速开发篇(持续更新)
1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...
- Android开源项目发现--- 工具类网络相关篇(持续更新)
1. Asynchronous Http Client for Android Android异步Http请求 项目地址:https://github.com/loopj/android-async- ...
- Android开源项目大全 - 工具类
主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...
- Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)
csdn :码小白 原文地址: http://blog.csdn.net/sk719887916/article/details/51958010 RetrofitClient 基于Retrofit2 ...
- okhttp3工具类及其使用
先工具类 package com.bhy.bdai.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONAr ...
- Java使用OkHttps工具类调用外部接口
前言 现在公司业务已止不是传统的增删改查等简单的业务处理操作,而是对数据各种联调三方接口与其他系统进行交互等,那么就需要我们在后台java中进行外部接口的调用,本文采用OkHttps工具类对接微信接口 ...
- 用Java编写的http下载工具类,包含下载进度回调
HttpDownloader.java package com.buyishi; import java.io.FileOutputStream; import java.io.IOException ...
随机推荐
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
一.标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/std 计算时对每个属性/每列分别进行. 将数据按期属性(按列进行)减去其均值,并处以其方差.得到的结果是,对于每个属 ...
- nodejs assert 模块
assert模块是Node的内置模块,主要用于断定.如果表达式不符合预期,就抛出一个错误.该模块提供11个方法,但只有少数几个是常用的. 1.assert() assert(value[, messa ...
- 8、非root权限下安装perl以及perl模块
转载:http://www.cnblogs.com/nkwy2012/p/6418669.html 转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无roo ...
- Luogu 4556 雨天的尾巴
主席树+线段树合并. 首先我们想一想如果只有一个结点的话,我们弄一个权值线段树就可以随便维护了. 那么我们可以运用差分的思想,把一个询问拆成四个操作,对于一个询问$(x, y, v)$,我们在$x$的 ...
- Jenkins配置有用摘抄笔记
使用jenkins配置.net mvc5网站自动构建全过程记录 转自:http://www.cnblogs.com/baiyunchen/p/4724350.html 持续集成是个简单重复劳动,人来 ...
- ASP.NET jquery 获取服务器控件ID
一般方法: jQuery("#txtUserName").val(); 如果页面加载了母版页或者自定义控件:该页面的ID有可能会被篡改(可能是因为避免控件ID冲突的机制),因此强烈 ...
- 使用Django创建一个后端是SQLSERVER的简单系统(一)Django连接SQLServer数据库
window环境下Django连接SQLSERVER, 1.创建项目: 2.创建application: 3.使用pycharm打开项目,如下图: 4.配置虚拟环境: 安装Django\pyodbc\ ...
- Ansible Playbooks基本使用
你将学到什么 如何使用playbook 如何编写playbook 如何使用roles PlayBook使用 基础环境 ### 64 位 Ubuntu 16.04 LTS,创建CentOS LXC容器w ...
- 使用 PHPMailer 发送邮件出现诡异bug,间歇性发送失败
场景 使用PHPMailer的SMTP发送邮件,用的是腾讯企业邮箱 smtp.exmail.qq.com 在邮箱设置里看到配置smtp方法 问题描述 本地windows开发环境发送邮件100%成功 远 ...
- 51nod1035(循环节)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 题意:中文题诶- 思路:求满足 10^k=1(mod ...