okhttp使用详解_okhttp入门教程_okhttp应用

编程教程 > Java (2019) 2025-01-27 10:15:06

一、okhttp 简介

HTTP是现代应用网络的方式。这就是我们交换数据和媒体的方式。有效地执行HTTP可以加快您的负载并节省带宽。

OkHttp是一个默认有效的HTTP客户端:

HTTP / 2支持允许对同一主机的所有请求共享套接字。
连接池减少了请求延迟(如果HTTP / 2不可用)。
透明GZIP缩小了下载大小。
响应缓存完全避免网络重复请求。
当网络很麻烦时,OkHttp坚持不懈:它将从常见的连接问题中无声地恢复。如果您的服务有多个IP地址,如果第一次连接失败,OkHttp将尝试备用地址。这对于IPv4 + IPv6和冗余数据中心中托管的服务是必需的。 OkHttp支持现代TLS功能(TLS 1.3,ALPN,证书固定)。它可以配置为回退以实现广泛的连接。

使用OkHttp很简单。它的请求/响应API采用流畅的构建器和不变性设计。它支持同步阻塞调用和带回调的异步调用。

OkHttp支持Android 5.0+(API级别21+)和Java 8+。

二、okhttp 依赖引入

以下为maven引入方式

<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.12.1</version>
</dependency>

以下是GRADLE引入

implementation 'com.squareup.okhttp3:okhttp:(insert latest version)'

三、okhttp 使用例子详解

3.1 okhttp获取一个http请求,并输出响应结果

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.2 okhttp发起数据请求

public 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();
  }
}


 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
okhttp使用详解,okhttp入门教程,okhttp应用,其实在Java web中okhttp使用还是不及Apache httpclient的。但是由于安卓中抛弃了httpclient,所以...
学习使用Retrofit 2在Android应用程序中解析sitemap (sitemap),使用简单的xml转换器依赖项进行xml解析。 在此示例中,我们将
前言       在本教程中,我们将了解Retrofit 的基础知识以和创建一个android HTTP client请求REST API
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
Java 11(2018 年 9 月发布)包含许多重要且有用的更新
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Vert.x java 入门,Vert.x这个框架在常规的web业务开发中估计还不是很成熟。但是了解了他的一些原理我觉得可以有一番作为。今天主要简单讲解下eclipse Vert.x是什么有什么...
问题描述JavaFX maven项目在idea中启动报错:Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMet...
问题描述最近写JavaFX程序遇到了下面的错误:Exception in thread "pool-2-thread-1" java.lang.IllegalStateException: No...
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
创建maven项目添加依赖方便开发,添加一些开发工具依赖,比如 lombok Swing UI开发创建Hello UI在src/main/java/包名下有件菜
Java编程之java static关键字,Java编程,static关键字
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R