Okhttp系列:POST请求

上一篇:Okhttp系列:简单的不用传参的Get请求示例

用Intelij Idea创建java项目,如下图:

添加阿里云镜像:

groovy 复制代码
maven { url 'https://maven.aliyun.com/repository/public/' }

添加Okhttp依赖:

groovy 复制代码
implementation 'com.squareup.okhttp3:okhttp:4.12.0'

java代码如下:

java 复制代码
package org.example;

import java.io.IOException;
import java.util.Collections;
import java.util.concurrent.TimeUnit;

import okhttp3.*;

public class PostExample {
  public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");


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

  String bowlingJson(String player1, String player2) {
    return "{\"winCondition\":\"HIGH_SCORE\","
            + "\"name\":\"Bowling\","
            + "\"round\":4,"
            + "\"lastSaved\":1367702411696,"
            + "\"dateStarted\":1367702378785,"
            + "\"players\":["
            + "{\"name\":\"" + player1 + "\",\"history\":[10,8,6,7,8],\"color\":-13388315,\"total\":39},"
            + "{\"name\":\"" + player2 + "\",\"history\":[6,10,5,10,10],\"color\":-48060,\"total\":41}"
            + "]}";
  }

  public static void main(String[] args) throws IOException {
    PostExample example = new PostExample();
    String json = example.bowlingJson("Jesse", "Jake");
    String response = example.post("https://jsonplaceholder.typicode.com/posts", json);
    System.out.println(response);
  }
}

执行结果:

复制代码
{
  "winCondition": "HIGH_SCORE",
  "name": "Bowling",
  "round": 4,
  "lastSaved": 1367702411696,
  "dateStarted": 1367702378785,
  "players": [
    {
      "name": "Jesse",
      "history": [
        10,
        8,
        6,
        7,
        8
      ],
      "color": -13388315,
      "total": 39
    },
    {
      "name": "Jake",
      "history": [
        6,
        10,
        5,
        10,
        10
      ],
      "color": -48060,
      "total": 41
    }
  ],
  "id": 101
}
相关推荐
Co_Hui3 天前
OkHttp 原理
okhttp
殷忆枫3 天前
BOA服务器下实现视频回放功能(CGI+软链接方案)
服务器·okhttp·音视频
消失的旧时光-19435 天前
第十篇:Ktor Custom Client Plugin:从 OkHttp Interceptor 真正理解请求与响应生命周期
okhttp·plugin·ktor·kmp
mmsx5 天前
基于 Android 的校园信息管理系统源码
android·java·okhttp
Full Stack Developme12 天前
跨站请求伪造 (CSRF) 是什么 设计及工作原理
前端·okhttp·csrf
weixin_4407841115 天前
【OkHttp实现原理】
android·java·okhttp
AZaLEan__1 个月前
原生XMLHttpRequest + axios + fetch
okhttp
Android-Flutter1 个月前
OkHttp 总结
android·okhttp·kotlin