OKhttp3使用get,post,delete,patch四种请求

1.okhttp简介

okhttp封装了大量http操作,大大简化了安卓网络请求操作,是现在最火的安卓端轻量级网络框架。如今okhttp已经更新到了okhttp4.0, 支持Android5.0以及以上的版本,要求Java在8.0以及以上的版本。

2.okhttp安装

  • 可以通过添加依赖进行安装

    implementation("com.squareup.okhttp3:okhttp:4.7.2")
  • 可以通过JAR的方式进行安装,

    https://github.com/square/okhttp/
  • 如果使用的是androidStudio可以在Project Structure--->Dependencies 点击“+”号选Library dependency在搜索页面分别搜okttp,okio

3.okhttp使用

3.1get请求

这里提供官方给的例子

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
Request request = new Request.Builder()
.url(url)
.build(); try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}

3.2POST请求

同样提供官方给的例子

ublic static final MediaType JSON
= MediaType.get("application/json; charset=utf-8"); OkHttpClient client = new OkHttpClient(); String post(String url, String json) throws IOException {
RequestBody body = RequestBody.create(json, JSON);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}

3.3delete请求

public class DeleteApi {
private OkHttpClient client;
public void Delete(final Handler handler, final String url, final int what){
final String token = TokenPool.getTokenPool().UserToken;
client = new OkHttpClient();
new Thread(){
@Override
public void run() {
super.run();
try {
String result = getUrl(url,token);
// Log.d("TAG",result);
Message message1 = Message.obtain();
message1.what=what;
message1.obj = result;
handler.sendMessage(message1);
} catch (IOException e) {
e.printStackTrace();
} }
}.start();
}
String getUrl(String url,String token) throws IOException {
FormBody body = new FormBody.Builder().build();
Request request = new Request.Builder()
.url(url)
.delete(body)
.addHeader("Authorization","Bearer "+token)
.build(); try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
}

3.4patch请求

public class PatchApi {
private OkHttpClient client;
private MediaType mediaType
= MediaType.parse("application/json; charset=utf-8");
public void patch(final Handler handler,final String url,final RequestBody body, final int what){
final String token = TokenPool.getTokenPool().UserToken;
client = new OkHttpClient();
new Thread(){
@Override
public void run() {
super.run();
try {
String result = getUrl(url,body,token);
Message message1 = Message.obtain();
message1.what= what;
message1.obj = result;
handler.sendMessage(message1);
} catch (IOException e) {
e.printStackTrace();
} }
}.start();
}
String getUrl(String url, RequestBody body, String token) throws IOException {
Request request = new Request.Builder()
.url(url)
.addHeader("Authorization","Bearer "+token)
.patch(body)
.build(); try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
}

[技术博客]OKhttp3使用get,post,delete,patch四种请求的更多相关文章

  1. Springboot的 get查看,post创建,put更新,delete删除 -四种请求实例(form + controller)

    总结 --get查看数据, post创建新数据行, put更新数据, delete删除数据行-- add和select功能都共用这一个页面, 需要进行区分显示 ,使用thymeleaf的三元选择,判断 ...

  2. 如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛

        如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客.看起来很唯心,但这就是事实.有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单.就是不停地训练,慢慢地,你自己 ...

  3. ******IT公司面试题汇总+优秀技术博客汇总

    滴滴面试题:滴滴打车数据库如何拆分 前端时间去滴滴面试,有一道题目是这样的,滴滴每天有100万的订单,如果让你去设计数据库,你会怎么去设计? 当时我的想法是根据用户id的最后一位对某个特殊的值取%操作 ...

  4. 转: BAT等研发团队的技术博客

    BAT 技术团队博客   1. 美团技术团队博客:  地址: http://tech.meituan.com/ 2. 腾讯社交用户体验设计(ISUX) 地址:http://isux.tencent.c ...

  5. 解决Eclipse中文乱码 - 技术博客 - 51CTO技术博客 http://hsj69106.blog.51cto.com/1017401/595598/

    解决Eclipse中文乱码 - 技术博客 - 51CTO技术博客  http://hsj69106.blog.51cto.com/1017401/595598/

  6. 欢迎访问我的最新个人技术博客http://zhangxuefei.top

    博客园已停止更新,欢迎访问我的最新个人技术博客http://zhangxuefei.top

  7. 技术博客(初用markdown)。

    技术博客 菜鸟教程在这个网站我学到许多有趣的东西,并且弥补了我之前的一些不足之处. 以下为我学习到的内容 输出不同的三位数 以下为代码和输出结果 *** #include<stdio.h> ...

  8. 技术博客(初用markdown)

    技术博客 菜鸟教程在这个网站我学到许多有趣的东西,并且弥补了我之前的一些不足之处. 以下为我学习到的内容. 1 如果想输出多个多位数的时候,可以尝试用多个if语句.如果需要输出3为数的时候,设置三个变 ...

  9. 【转】【技术博客】Spark性能优化指南——高级篇

    http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...

随机推荐

  1. 安装 Ubuntu 21.04 后必备的绝佳应用大合集(持续更新中)

    @ 目录 一.Google Chrome 浏览器 1.下载 2.安装 3.设置搜索引擎 二.火焰截图(替代QQ截图) 1.简介: 2.安装: 3.设置快捷键: 三.VLC视频播放器(替代Potplay ...

  2. uni-app 登录Abp VNexe并获取Token

    uni.request方式登录abp关键代码如下,因abp获取token需要用formdata方式请求所以需要加上请求头 const baseUrl = 'http://127.0.0.1:44323 ...

  3. vue-admin-element 页面跳转

    1.通过router-link 进行跳转 <router-link to="/china-quotation/business-function/quotation-request&q ...

  4. MySQL查询结果集字符串操作之多行合并与单行分割

    前言 我们在做项目写sql语句的时候,是否会遇到这样的场景,就是需要把查询出来的多列,按照字符串分割合并成一列显示,或者把存在数据库里面用逗号分隔的一列,查询分成多列呢,常见场景有,文章标签,需要吧查 ...

  5. ssh跳转设置

    SSH工具的非常规使用 原创 景朝阳 FreeSWITCH中文社区 今天   说明:本文所有的命令是基于OpenSSH客户端7.4p1版本.如果出现命令不正确,请检测是否为此OpenSSH版本. 设置 ...

  6. awk的执行方式

    https://blog.csdn.net/fengyuanye/article/details/82858863 awk执行有三种形式: 1.直接以命令行来执行,        语法形式为:awk  ...

  7. C# 动态构建表达式树(二)——构建 Select 和 GroupBy 的表达式

    C# 动态构建表达式树(二)--构建 Select 和 GroupBy 的表达式 前言 在上篇中写了表达式的基本使用,为 Where 方法动态构建了表达式.在这篇中会写如何为 Select 和 Gro ...

  8. dede调用文章内第一张原始图片(非缩略图)的实现方法

    第一步,修改include/extend.func.php文件,最下面插入函数,查询的是文章附加表,如需查询图片集什么的,改表名即可 //取原图地址 function GetFirstImg($arc ...

  9. ecshop transport.js IE报错(608行),对象不支持此属性或方法 的解决办法

    解决办法: 将if (this.hasOwnProperty(k)) { 改为: if (this.hasOwnProperty && this.hasOwnProperty(k)) ...

  10. 【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php

    问题描述 参考官方文档部署 PHP Laravel 项目到App Service for Linux环境中,但是访问应用时候遇见了500 Server Error 错误. 从部署的日志中,可以明确看出 ...