当前位置: 首页 > 知识库问答 >
问题:

SpringBoot:如何发送和访问通过RestTemplate HttpGet请求传递的HashMap?

邢卓
2023-03-14
Map<String, String> map=new HashMap<>();
map.put("name", "abc");

HttpEntity<Map<String, String>> entity=new HttpEntity<>(map, headers);
        
restTemplate.exchange("http:localhost:8080/getdata", HttpMethod.GET, entity , Object.class);

微服务2

@GetMapping("/getdata")
Object getData(@RequestParam HashMap<String,String> user){

   sysout(user) // Null

}

共有1个答案

习狐若
2023-03-14

在创建HttpEntity的对象时,使用其他构造函数,这将允许您提供请求体和头。请检查下面的示例:

Map<String, String> map=new HashMap<>();
map.put("name", "abc");

HttpEntity<Map<String, String>> entity=new HttpEntity<>(map, headers);

还要更改您的控制器。不是在请求参数中接受用户映射,而是通过请求体接受它。将@RequestParam更改为@RequestBody,如下例所示:

@GetMapping("/getdata")
Object getData(@RequestBody Map<String, String> user) {
   System.out.println(user);

   return null;
}

请参阅Spring文档

 类似资料:
  • 问题内容: 似乎urllib2默认发送HTTP / 1.1请求? 问题答案: urllib2在后台使用httplib进行连接。您可以将其更改为http 1.0,如下所示。我已包含我的apache服务器访问日志,以显示http连接如何更改为1.0 码 访问日志

  • 问题内容: 如何通过python模块Requests传递csrftoken?这就是我所拥有的,但是它不起作用,并且我不确定将其传递给哪个参数(数据,标头,身份验证…) 每次都有相同的错误消息。 问题答案: 如果要设置引荐来源标头,则对于该特定站点,您需要将引引来源设置为与登录页面相同的URL: 当使用不安全时,标头通常会被过滤掉,否则无论如何很容易被欺骗,因此大多数站点不再需要设置标头。但是,在使

  • 问题内容: 我正在学习Java套接字。我正在尝试向Facebook发送HTTPS GET请求,如下所示: 然后,我尝试侦听来自服务器的传入数据,如下所示: 但是我没有从服务器获得任何返回数据。为什么? 问题答案: 两个答案。 您正在尝试与HTTPS服务器通信。这要求您建立一个SSL / TLS通道。这在纯套接字上确实很难>>您必须实现连接协商,密钥链的客户端验证,会话加密/解密等。 一个更合理的方

  • 问题内容: 如何通过JavaScript发送跨域POST请求? 注意-它不应该刷新页面,之后我需要抓取并解析响应。 问题答案: 如果你控制要发布的服务器,只需在服务器上设置响应头即可利用“跨域资源共享标准”。此答案在该主题的其他答案中进行了讨论,但我认为不是很清楚。 简而言之,这里是如何完成从from.com/1.html到to.com/postHere.php的跨域POST(以PHP为例)。注意

  • 这是我的虚拟接口 和我的自定义配置 如果我像这样发送请求,我会看到我的请求发送了Content-Type:application/JSON;字符集=UTF-8。但是如果我设置了内容类型 我收到了这条错误消息。 如何发送POST请求,我认为我应该用编码器做更多的东西。感谢您的帮助。

  • 我如何发送此信息: 到API: 使用cURL,我目前一直在使用: 其中我得到了结果(NGrok): GET/testDir/curlPost。php HTTP/1.1 接受:text/html、Application/xhtml xml、image/jxr、/ 接受语言:en-GB 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537