导入依赖

    <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
</dependencies>

编写一个接口

    @RequestMapping("/Json")
@ResponseBody
public JSONObject Json(@RequestBody JSONObject map) {
System.out.println(map);
map.put("success", true);
map.put("msg", UUID.randomUUID().toString());
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
stringObjectHashMap.put("token", "asdascfr22rwf");
map.put("response", stringObjectHashMap);
return map;
}

编写OkHTTP的测试类发送请求这个接口

package com.example.demo.demos.web;

import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.IOException;
import java.util.UUID;
import java.util.concurrent.TimeUnit; public class HttpClentTest { private final static String httpHeaderMediaType = "application/json;charset=utf-8"; private final static String httpHeaderContentType = "Content-Type"; private final static Logger logger = LoggerFactory.getLogger(HttpClentTest.class); /**
* 设置默认30秒Http调用超时
*/
private final static OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.callTimeout(30, TimeUnit.SECONDS)
.build();
public static void main(String[] args) {
JSONObject jsonBody = new JSONObject();
jsonBody.put("appKey", UUID.randomUUID().toString());
jsonBody.put("appSecret", UUID.randomUUID().toString());
// 构建Request对象
RequestBody requestBody = RequestBody.create(MediaType.parse(httpHeaderMediaType), jsonBody.toJSONString());
Request request = new Request.Builder()
.addHeader(httpHeaderContentType, httpHeaderMediaType)
.addHeader("Accept", httpHeaderMediaType)
.post(requestBody)
.url("http://localhost:8282/Json")
.build();
Response signRsp = null;
try {
signRsp = client.newCall(request).execute();
if (signRsp.isSuccessful()) {
String body = signRsp.body().string();
JSONObject respBody = JSONObject.parseObject(body);
if (respBody.getBoolean("success")) {
System.out.println("===================================Token===================================");
System.out.println(respBody.getJSONObject("response").getString("token"));
} else {
logger.error("Http连接OpenapiAPi地址:openapiLoginUrl 失败,MSG= {}", respBody.getString("msg"));
}
}
} catch (IOException e) {
logger.error("Http连接OpenapiAPi地址:openapiLoginUrl 失败", e);
}
}
}

成功测试结果

===================================Token===================================
asdascfr22rwf

OkHTTP发送POST请求传送JSON数据的更多相关文章

  1. Android Studio利用异步任务AsyncTask发送post请求获取json数据

    syncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主 ...

  2. 使用Retrofit发送POST请求提交JSON数据

    Retrofit官网:https://square.github.io/retrofit/ 示例如下 HttpService.java import okhttp3.RequestBody; impo ...

  3. PHP/Post 提交请求获取json数据,并转化为所需要的数组

    /** * Post 提交请求获取json数据,并转化为所需要的数组 */ function request_post($url = '', $param = '') { if (empty($url ...

  4. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  5. 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法

    在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...

  6. 【VueJS】VueJS开发请求本地json数据的配置

    VueJS开发请求本地json数据的配置,旧版本是build/dev-server.js,新版本是build/webpack.dev.conf.js. VueJS开发请求本地json数据的配置,早期的 ...

  7. Nginx下HTML页面POST请求静态JSON数据返回405状态

    在浏览器访问HTML页面,发现一些静态JSON数据没有显示,F12查看,如下图所示: 可以看到请求方式为POST 将请求链接复制在浏览器地址栏访问,可以正常请求到数据 F12查看,可以看到请求方式为G ...

  8. Beego框架POST请求接收JSON数据

    原文: https://blog.csdn.net/Aaron_80726/article/details/83870563 ------------------------------------- ...

  9. 手把手教你vue配置请求本地json数据

    本篇文章主要介绍了vue配置请求本地json数据的方法,分享给大家,具体如下:在build文件夹下找到webpack.dev.conf.js文件,在const portfinder = require ...

  10. XML 数据请求与JSON 数据请求

    (1)XML 数据请求 使用 AFNetworking 中的 AFHTTPRequestOperation 和 AFXMLParserResponseSerializer,另外结合第三方框架 XMLD ...

随机推荐

  1. 解密Prompt45. 再探LLM Scalable Oversight -辩论、博弈哪家强

    之前我们已经介绍过几个针对Scalable Oversight的解法,也就是当模型能力在部分领域超越人类标注者后,我们该如何继续为模型提供监督信号,包括 持续提升Verifier的能力,辅助人类提供监 ...

  2. 开源轻量级 IM 框架 MobileIMSDK 的Uniapp客户端库已发布

    一.基本介绍 MobileIMSDK-Uniapp端是一套基于Uniapp跨端框架的即时通讯库: 1)超轻量级.无任何第3方库依赖(开箱即用): 2)纯JS编写.ES6语法.高度提炼,简单易用: 3) ...

  3. 开源轻量级 IM 框架 MobileIMSDK v6.1.2 发布!

    一.更新内容简介 本次更新为次要版本更新,进行了若干优化(更新历史详见:码云 Release Nodes).可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架. ...

  4. 开源即时通讯IM框架 MobileIMSDK:快速入门

    1.项目简介 MobileIMSDK是一套专为移动端开发的原创IM通信层框架: 1)历经8年.久经考验: 2)超轻量级.高度提炼,lib包50KB以内: 3)精心封装,一套API同时支持UDP.TCP ...

  5. Datawhale AI 夏令营-天池Better Synth多模态大模型数据合成挑战赛-task3持续上分(更新中)

    在大数据.大模型时代,随着大模型发展,互联网数据渐尽且需大量处理标注,为新模型训练高效合成优质数据成为新兴问题."天池 Better Synth - 多模态大模型数据合成挑战赛"应 ...

  6. asp.net core中,使用CancellationToken在用户终止请求时取消所有异步操作+ abp中的设计

    如果一个Controller.Action里的处理非常耗时,比如读数据库.文件操作.调用第三方接口等此时用户随时可能关闭浏览器.F5刷新网页等操作.但是服务端的耗时代码任然在执行,这太浪费了,既然用户 ...

  7. java基础知识回顾之java Thread类学习(二)--java多线程安全问题(锁)

    上一节售票系统中我们发现,打印出了错票,0,-1,出现了多线程安全问题.我们分析为什么会发生多线程安全问题? 看下面线程的主要代码: @Override public void run() { // ...

  8. 2025-01-15:执行操作可获得的最大总奖励 Ⅰ。用go语言,给定一个整数数组 rewardValues,其中包含 n 个代表奖励值的数字。 你开始时的总奖励 x 为 0,并且所有下标都是未标记状

    2025-01-15:执行操作可获得的最大总奖励 Ⅰ.用go语言,给定一个整数数组 rewardValues,其中包含 n 个代表奖励值的数字. 你开始时的总奖励 x 为 0,并且所有下标都是未标记状 ...

  9. react 计算衍生数据

    import React from 'react' import { connect } from 'react-redux' import TodoList from '../components/ ...

  10. react中refs的使用

    1.在dom元素中直接使用ref 意思就是可以在组件中创建一个dom节点的textInput,并将ref直接绑定到他 <script src="https://unpkg.com/@b ...