@PostMapping("/insert/test")
public Integer insertInto(@RequestBody Map<String, String> map) {
System.out.println(map.toString());
System.out.println(map.size());
return map.size();
然后是调用部分
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);//设置参数类型和编码
Map<String,String> map1 = new HashMap<>();//建立简单的String,String的map
map1.put("email", "first.last@example.com");
map1.put("email1", "first.last@example.com1");
map1.put("email2", "first.last@example.com2");
HttpEntity<Map<String,String>> request1 = new HttpEntity<>(map1, headers);//包装到HttpEntity
//postForEntity -》 直接传递map参数
ResponseEntity<Integer> respo1 = restTemplate.postForEntity("http://localhost:8895/insert/test", map1, Integer.class);
//postForEntity -》 传递httpentity参数
ResponseEntity<Integer> respo2 = restTemplate.postForEntity("http://localhost:8895/insert/test",request1 , Integer.class);
//postForObject -》 直接传递map参数
Integer respo3= restTemplate.postForObject("http://localhost:8895/insert/test", map1, Integer.class);
//postForObject -》 传递httpentity参数
Integer respo4= restTemplate.postForObject("http://localhost:8895/insert/test", request1, Integer.class);
直接传递httpentity类型的话,resttemplate会判断是否是httpentity类型,是的话,传递到下一层进行解析;
直接传递map参数,resttemplate解析不是httpentity,会把map包装到httpentity里面,和我们代码做得是一样的操作,这里的默认参数类型应该也是application/json;
接收的话,就是在参数哪里加一个@requestbody。
就这样。搞了一天,试过各种转,原来直接传就行,别忘了参数类型和@requestbody
下面是之前的内容:更正一下,这个传递的map,里面的泛型不能是数组,类似于Map&lt;String,Object[]&gt;这样就不行,自己写一个util,将Map&lt;String,Object[]&gt; 转换为Map&lt;String,List&lt;Object&gt;&gt;,接口那边接受的类型也是一样的,这样就可以进行复杂类型参数的传递。原因是什么呢,因为传递的参数格式已经定...
在Spring Boot中,可以使用RestTemplate发送POST请求。以下是具体的实现步骤:在Spring Boot项目中添加RestTemplate的依赖。<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-star...
Unity画面滤镜优化着色器Post Processing Profiles 3.1
所支持的Unity版本:2017.1.0 及以上版本
Post processing 3 profiles for PC/Mac and Mobile
21 different settings for Post Processing V3.
With the help of these settings you could get realistic graphics just in few clicks. Effects: UE, Cry, Realistic, Lomo, Crazy
@Autowired
private RestTemplate restTemplate;
//通过restTemplate post传递map方法 接口返回一个int类型
public void longRangeTest(){
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMed...
当使用RestTemplate进行http请求时,的确很方便,但是当需要进行post请求时遇到了坑
1POST传递参数 :采用 LinkedMultiValueMap ,不能使用HashMap
String url = 'http://posturl';
MultiValueMap<String, String> map= new LinkedMultiValueMap<......
有个项目接口需要传送一个x-www-form-urlencoded的参数,key=data,value={json的map}
一开始用一个字符串拼接,把字符串拼接为如下样式:
String param = "data=
"aa": "123456789",
"bb": "11",
"cc": "梁宝宝"
然后直接把这个字符串当做参数传过去:
RestTemplate restTemplate = RestTemplateUtil.getInstance("utf
最近因为公司需求,需要ajax post请求并跳转界面,网上搜了一下资料,差不多都是用[removed].href来处理,但是在请求页面的地址栏中会暴露请求的参数,这是不安全的。
$.post(
{method:regist,userName:$nameEle.val(),email:$emailEle.val(),password:$passwordEle.val()},
function(data) {
//注册成功页面跳转,
[removed].href =../yiliaoqixie/login.html?name=+$nameEle.val
异常抛出之后,程序后面的代码就执行不到了,无法进行后面的代码执行。实际的业务开发中,有的时候我们更期望的结果是:不管你服务端是超时了还是服务不存在,我们都应该获得最终的请求结果(HTTP请求结果状态400、500),而不是获得一个抛出的异常。
二、源码解析-默认实现
首先我要说一个结论:RestTemplate请求结果异常是可以自定义处理的。在开始进行自定义的异常处理逻辑之前,我们有必要看一下异常处理的默认实现。也就是:为什么会产生上面小节提到的现象?
ResponseErrorHandler是RestTemplate请求结果的异常处理器接口
o接口的第一个方法hasError用于判断HttpResponse是否是异常响应(通过状态码)
o接口的第二个方法handleError用于处理异常响应结果(非200状态码段)
DefaultResponseErrorHandler是ResponseErrorHandler的默认实现
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.ht
RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求,
可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方...
RestTemplate中post请求实用分析
1、最近在做相关平台对接工作。对接第一步需要在后端完成认证,拿到对方平台的access_token。由于对方文档不是很详细,根据认证需要的参数进行了多种尝试。顺带学习一下RestTemplate发post的请求的各种姿势。记录在此,以便查看。
2、往后端发post请求一般分为两种,
一种是普通的表单提交(Content-Type: application/x-www-form-urlencoded)。
另一种是JSON提交(Content-Type: a
RestTemplate是Spring框架提供的一个HTTP客户端工具,可以用于发送HTTP请求。其中,post请求是一种常见的请求方式,可以用于向服务器提交数据。使用RestTemplate发送post请求的步骤如下:
1. 创建RestTemplate对象。
2. 创建请求头和请求体。
3. 发送请求并获取响应。
4. 处理响应数据。
具体实现可以参考以下代码:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
JSONObject requestBody = new JSONObject();
requestBody.put("name", "张三");
requestBody.put("age", 20);
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody.toJSONString(), headers);
String url = "http://localhost:808/user";
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
String responseBody = responseEntity.getBody();
其中,第一行代码创建了一个RestTemplate对象;第二行代码创建了请求头,并设置Content-Type为application/json;第三行代码创建了请求体,使用JSONObject封装了请求参数;第四行代码创建了HttpEntity对象,将请求头和请求体封装在一起;第五行代码设置了请求的URL;第六行代码发送post请求,并获取响应;第七行代码从响应中获取响应体。
laolvbig: