【JAVA springframework.http】如何发送HTTP请求

Springboot之restTemplate

java 复制代码
public Result doHandlePostJson(String restUri, String jsonData)
            throws Exception {

        Result result = null;

        try {

            // logger记录
            log.info("doHandlePostJson request restUri:" + restUri
                    + " sendData:" + jsonData);

            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            HttpEntity request = new HttpEntity(jsonData, headers);

            // 发送http服务请求
            ResponseEntity<String> response = restTemplate.postForEntity(
                    restUri, request, String.class);

            // 判断返回结果
            if (response.getStatusCode() == HttpStatus.OK) {

                // logger记录
                log.debug("doHandlePostJson restUri response success,interfaceUri:"
                        + restUri);

                // 获得返回结果
                String repData = response.getBody();

                // logger记录
                log.info("doHandlePostJson restUri response success,return data:"
                        + repData);

                // 返回成功
                result = Result.succeed(repData, "");

            } else {

                // logger记录
                log.info("doHandlePostJson restUri response error,interfaceUri:"
                        + restUri + " http status:" + response.getStatusCode());

                // 返回产品Gateway通讯异常错误
                result = Result.failed("请求外部系统异常");
            }

        } catch (ResourceAccessException e) {

            // logger记录
            log.error("doHandlePostJson restUri ResourceAccessException:", e);

            // 返回通讯异常错误
            result = Result.failed("请求外部系统超时");

        } catch (Exception e) {

            // logger记录
            log.error("doHandlePostJson restUri Exception:", e);

            // 返回通讯异常错误
            result = Result.failed("请求外部系统未知异常");
        } finally {

            // 关闭
        }

        return result;
    }

package org.springframework.http;

HttpHeaders

public class HttpHeaders implements MultiValueMap<String, String>, Serializable

HttpEntity

public class HttpEntity

HttpStatus

public enum HttpStatus

相关推荐
wuminyu6 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
callJJ7 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
wbs_scy8 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
jinanwuhuaguo9 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup10 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
9523610 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.10 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-194310 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心122110 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4
庞轩px10 小时前
第8篇:原子类与CAS底层原理——无锁并发的实现
java·cas·乐观锁·aba·无锁编程·自旋