RestTemplate常用的get和post带参数请求

本文详细介绍了如何使用Spring的RestTemplate进行GET和POST请求,并解释了如何正确传递参数以避免混淆。针对不同请求方式,提供了具体的代码示例,帮助读者理解实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在RestTemplate提供的方法中,有一个参数就是目标URL,参数是跟在后面的一个数量可变参数,但是在这里就有个问题,这个方法怎么知道我传的参数值是对应在目标接口的哪个参数的呢:

public <T> T postForObject(String url, Object request, Class<T> responseType, Object... uriVariables)

  比如有个url的链接是post方式请求,然后需要提供name和id两个参数,返回值是一个json,然后调用:

JSONObject result = restTemplate.postForObject(url, null, JSONObject.class, "张三", "2");


这里就无法分辨张三是name还是2是name。所以post一般是把参数封装到request里面。

JSONObject msg = new JSONObject();
        msg.put("key", "@*2y9$jl");
        msg.put("receiver", receiverEcommerceId);
        msg.put("title", title);
        msg.put("content", content);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity request = new HttpEntity(msg.toJSONString(), headers);
JSONObject result = restTemplate.postForObject(url, request, JSONObject.class);

get方式带参数:

String url=http://test.com/url?param1={param1}&param2={param2};
Map<String, Object> params = new HashMap<>();
params.put("param1", "value1");
params.put("param2", "value2");
JSONObject mutiData = restTemplate.getForObject(url, JSONObject.class, params);

值得一提的是,如果是把url配置在properties配置文件里面的,sax解析会出错,得把&替换成&amp;

转载于:https://www.cnblogs.com/yangshunxing/p/7274798.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值