Java后端通过RestTemplate访问请求

说明

一般在开发过程中,通常会由一个服务端口去访问另一个服务端口,这个这个时候我们可以选择使用RestTemplate请求,或者其他,本篇指展示RestTemplate请求。

代码展示

import net.sf.json.JSONObject;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;


public class JavaRestTemplate {

    private RestTemplate restTemplate = new RestTemplate();

    public void restTemplateDemo(){
        try {
             //跨域访问表头
            HttpHeaders headers = new HttpHeaders();
            //接口地址
            String url = "http://192.168.10.10:8080/demoInface";
            //restTemplate的POST请求,必须是使用MultiValueMap
            MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>();
            //利用multiValueMap插入需要传输的数据
            multiValueMap.add("id","1");
            multiValueMap.add("name","小明");
            //放入Http传输的数据
            HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(multiValueMap,headers);
            //访问接口并获取返回值
            ResponseEntity<String> responseEntity = restTemplate.postForEntity(url,httpEntity,String.class);
            //输出接口所返回过来的值
            System.out.println(responseEntity.getBody());
        }catch(Exception e){
            e.printStackTrace();
        }finally {

        }
    }
}

Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过使用Spring框架提供的RestTemplate类,Spring MVC可以方便地向其他服务器发送HTTP请求,包括SSE(Server-Sent Events)请求。 SSE是一种服务器推送技术,允许服务器向客户端(通常是Web浏览器)发送流式数据。在Spring中,使用RestTemplate发送SSE请求通常涉及以下步骤: 1. 创建RestTemplate实例:首先,需要创建一个RestTemplate的Bean,以便在整个Spring MVC应用程序中重用。 2. 设置请求头:对于SSE,通常需要设置适当的HTTP头,如`Accept`头设置为`text/event-stream`,以及`Cache-Control`头设置为`no-cache`,表明这是一个事件流。 3. 发送GET请求:使用RestTemplate的`getForObject`或`exchange`方法发送一个GET请求到目标URL。对于SSE,URL通常是SSE服务的端点。 4. 处理返回的`ResponseEntity`:`exchange`方法会返回一个`ResponseEntity`对象,可以从中获取响应头和响应体。SSE响应通常是一个输入流。 5. 读取数据流:通过响应体(InputStream)读取服务器发送的数据。这通常涉及到循环读取输入流中的数据,并处理每个从服务器发送过来的事件。 下面是一个简单的示例代码,展示如何使用RestTemplate发送SSE请求: ```java RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "text/event-stream"); headers.set("Cache-Control", "no-cache"); HttpEntity<String> entity = new HttpEntity<String>(headers); ResponseEntity<InputStreamResource> response = restTemplate.exchange( "http://other-server.com/sse-endpoint", HttpMethod.GET, entity, InputStreamResource.class); try (InputStream inputStream = response.getBody()) { // 读取输入流中的数据 // ... } ``` 请注意,实际使用中,服务器必须支持SSE并且正确配置,客户端才能正确接收数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值