遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

okhttp的基本使用(post发送json示例)

 

简介

OkHttp是一个处理网络请求的开源项目

功能

PUT,DELETE,POST,GET等请求
文件的上传下载
加载图片(内部会图片大小自动压缩)
支持请求回调,直接返回对象、对象集合
支持session的保持

优点

支持HTTP2/SPDY(SPDY是Google开发的基于TCP的传输层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。)
socket自动选择***路线,并支持自动重连,拥有自动维护的socket连接池,减少握手次数,减少了请求延迟,共享Socket,减少对服务器的请求次数。
基于Headers的缓存策略减少重复的网络请求。
拥有Interceptors轻松处理请求与响应(自动处理GZip压缩)

 

依赖

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

  

示例

package com.qzcsbj.demo;

import okhttp3.*;
import java.io.IOException;
import java.util.concurrent.TimeUnit;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class OkHttp3Test {
    public static void main(String[] args) {
        // 定义接口的URL
        String url = "http://localhost:8089/qzcsbj/user/login";
        
        // 接口的请求参数
        String requestParameter = "{\n" +
                "  \"username\": \"qzcsbj\",\n" +
                "  \"password\": \"123456\"\n" +
                "}";
        // 封装请求体
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody requestBody = RequestBody.create(mediaType, requestParameter);

        // 封装请求对象
        Request request = new Request.Builder().post(requestBody)
                .addHeader("Content-Type", "application/json")
                .url(url).build();

        // 创建okhttp工具类
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(30, TimeUnit.SECONDS)
                .writeTimeout(30, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .build();

        try {
            // 执行这个请求对象
            Response response = okHttpClient.newCall(request).execute();
            System.out.println(response.body().string());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  

结果

 

posted @ 2023-04-25 20:01  全栈测试笔记  阅读(359)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end