一)okhttp3简介
okhttp是一个高性能的http库,支持同步、异步请求,并且实现了spdy、http2、websocket协议,api比较简洁易用。
核心类:
OkHttpClient:用于初始化http请求信息
Request:请求参数信息
Call:回调函数信息
RequestBody:请求报文信息
Response:请求响应信息
okhttp github地址:https://github.com/square/okhttp
http请求方式区别:
multipart/form-data:该方式可以用键值对传递参数,并且可以上传文件。
application/x-www-form-urlencoded:该方式只能以键值对传递参数,并且参数最终会拼接成一条,用“&”符合隔开。
application/json:该方式是以对象的方式传递参数,对象中的信息以键值对传递。
二)okhttp3案例
第一步:创建一个maven项目,引入springboot的jar、再引入okhttp3的jar
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.oysept</groupId>
<artifactId>springboot_okhttp3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.oysept.Okhttp3Application</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
创建application.yml配置文件,设置访问端口
server:
port: 8080
创建springboot启动类:
package com.oysept;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Okhttp3Application {
public static void main(String[] args) {
SpringApplication.run(Okhttp3Application.class, args);
}
}
创建一个JavaBean,用于参数传递
package com.oysept.vo;
public class FileVO {
private String fileName;
private String fileContent;
private Integer fileSize;
private String fileType;
public FileVO() {}
public FileVO(String fileName, String fileContent, Integer fileSize, String fileType) {
thi