RestTemplate基本使用之HTTP实现GET请求和POST请求

一、GET请求实例

java 复制代码
    public static TianQi getTianQi(String city) {
        RestTemplate restTemplate = new RestTemplate();
        HashMap res = restTemplate.getForObject("http://www.tianqiapi.com/api/?version=v6&appid=15118158&appsecret=gVNnwva8&city=" + city, HashMap.class);

        if (res == null) {
            return null;
        }
        Object errCode = res.get("errcode");
        if (errCode != null) {
            log.error("获取天气错误,city:{},res:{}", city, JsonUtil.toJson(res));
            int code = (int) errCode;
            int error = 100;
            if (code == error) {
                return null;
            }
        }
        TianQi tianQi = new TianQi();
        tianQi.setCountry((String) res.get("country"));
        tianQi.setTem((String) res.get("tem"));
        tianQi.setTem1((String) res.get("tem1"));
        tianQi.setTem2((String) res.get("tem2"));
        tianQi.setCity((String) res.get("city"));
        tianQi.setWea((String) res.get("wea"));
        tianQi.setWeaImg((String) res.get("wea_img"));
        tianQi.setAirTips((String) res.get("air_tips"));
        tianQi.setDate((String) res.get("date"));
        tianQi.setUpdateTime((String) res.get("update_time"));
        return tianQi;
    }

二、POST请求实例

java 复制代码
package com.gzzoc.wisdom.personal.conv.business.helper;


import com.alibaba.fastjson.JSON;
import com.gzzoc.wisdom.common.model.personal.dto.ChatZOCDataDTO;
import com.gzzoc.wisdom.common.model.personal.dto.ChatZOCRequestDataDTO;
import com.gzzoc.wisdom.personal.conv.business.service.ConvDetailsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;

import java.io.BufferedReader;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

/**
 * class: LLMChatZOCClient
 *
 * @author Selig
 * @date 2024-10-17 14:27
 */
@Slf4j
@Component
public class LLMChatZOCClient {

    private final static String URL = "url地址";

    public static ResponseEntity<String> getChatZOCData(ChatZOCRequestDataDTO dto) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        //默认流式返回
//        headers.setContentType(MediaType.TEXT_EVENT_STREAM);
        headers.add("Accept", "application/json");
        headers.add("Content-type", "application/json");
        ChatZOCDataDTO requestBody = new ChatZOCDataDTO();
        if (dto.getStream() != null) {
            requestBody.setStream(false);
        }
        requestBody.setMessages(dto.getMessages());
        log.info("requestBody----"+JSON.toJSONString(requestBody));

        //3、组装请求头和参数
        HttpEntity<String> formEntity = new HttpEntity<>(JSON.toJSONString(requestBody), headers);
        //4、发起post请求
        ResponseEntity<String> response = null;
        try {
            response = restTemplate.postForEntity(URL, formEntity, String.class);
        } catch (RestClientException e) {
            e.printStackTrace();
        }

        //5、获取http状态码
        if (response != null){
            int statusCodeValue = response.getStatusCodeValue();
            log.info("httpCode-----"+statusCodeValue);
        }

        return response;
    }


}
相关推荐
想成为优秀工程师的爸爸12 分钟前
第三十篇技术笔记:郭大侠学UDS - 人有生老三千疾,望闻问切良方医
网络·笔记·网络协议·tcp/ip·信息与通信
掌心向暖RPA自动化2 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭2 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
灰子学技术3 小时前
Envoy HTTP Connection Manager (HCM) 技术文档
网络·网络协议·http
TeamDev3 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试
likerhood4 小时前
SLF4J: Failed to load class “StaticLoggerBinder“ 解决
java·log4j·maven
早日退休!!!4 小时前
大模型推理瓶颈七层分析模型
java·服务器·数据库
叶小鸡4 小时前
Java 篇-项目实战-天机学堂(从0到1)-day9
java·开发语言