OkHttp工具类

时间:2022-12-30 08:59:45
 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工具类的更多相关文章

  1. 超简单的okhttp封装工具类(上)

      版权声明:转载请注明出处:http://blog.csdn.net/piaomiao8179 https://blog.csdn.net/piaomiao8179/article/details/ ...

  2. Android OkHttp网络连接封装工具类

    package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...

  3. Android开源项目发现--- 工具类快速开发篇(持续更新)

    1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...

  4. Android开源项目发现--- 工具类网络相关篇(持续更新)

    1. Asynchronous Http Client for Android Android异步Http请求 项目地址:https://github.com/loopj/android-async- ...

  5. Android开源项目大全 - 工具类

    主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...

  6. Android基于Retrofit2&period;0 &plus;RxJava 封装的超好用的RetrofitClient工具类(六)

    csdn :码小白 原文地址: http://blog.csdn.net/sk719887916/article/details/51958010 RetrofitClient 基于Retrofit2 ...

  7. okhttp3工具类及其使用

    先工具类 package com.bhy.bdai.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONAr ...

  8. Java使用OkHttps工具类调用外部接口

    前言 现在公司业务已止不是传统的增删改查等简单的业务处理操作,而是对数据各种联调三方接口与其他系统进行交互等,那么就需要我们在后台java中进行外部接口的调用,本文采用OkHttps工具类对接微信接口 ...

  9. 用Java编写的http下载工具类,包含下载进度回调

    HttpDownloader.java package com.buyishi; import java.io.FileOutputStream; import java.io.IOException ...

随机推荐

  1. 【Cocos2d-Js基础教学(6)网络层(弱联网)的封装及使用】

    谈到联网,在游戏中也是非常核心的模块,在官方Js-test中我们可以找到联网部分 的NetworkTest文件下有两个类 SocketIOTest.js(Socket 类) WebSocketTest ...

  2. BZOJ4241 历史研究

    Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件. ...

  3. RouterOS 软路由配置固定IP上网&plus;DHCP

    实现要求: 局域网所有PC机自动获取IP地址,能相互访问并且能访问外网 环境要求: 一台PC机安装两张网卡 ( 使用常用的网卡芯片,例如Intel芯片.RTL瑞昱芯片等 ) 配置说明 1.外网IP地址 ...

  4. 01&period;Box2dWeb入门教程

    1.下载box2dweb.直接在页面中引用即可. -Box2D.js是未压缩版 -Box2d.min.js是压缩版 2.编写HelloWorld代码. <!DOCTYPE HTML> &l ...

  5. Thinking Clearly about Performance

    http://queue.acm.org/detail.cfm?id=1854041 The July/August issue of acmqueue is out now acmqueue is ...

  6. Global build settings

    [ ] Select all packages by default *** General build options ***   [ ] Show packages that require gr ...

  7. jvm调优经验分享

    当Java程序申请内存,超出VM可分配内纯的时候,VM首先可能会GC,假设GC完还是不够,或者申请的直接超够VM可能有的,就会抛出内 存溢出异常.从VM规范中我们能够得到,一下几种异常. java.l ...

  8. 浅谈RESTful

    浅谈RESTful 什么是RESTful? REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Ro ...

  9. mysql5&period;7 的 user表的密码字段从 password 变成了 authentication&lowbar;string

    来源: http://www.zhimengzhe.com/shujuku/other/267631.html 感觉还是挺坑的 自己没了解清楚 就动手 转帖一下 mark 一下. 1.首先停止正在运行 ...

  10. Java12配置

    配置环境变量: 之前的JAVA_HOME和CLASSPATH已经都不要了.只要配置jdk的bin到Path里: C:\Program Files\Java\jdk-12\bin