java - Spring Boot - 如何通过带有查询参数的 url 发送 POST 请求并将响应存储在方法中?
问题描述
我有一个由 GET 方法生成的 url,它有点像这种格式:
https://service-name/api?param1=<value1>¶m2=<value2>¶m3=<value3>.....
我需要点击这个 url 并将响应(类型为application/x-www-form-urlencoded
)存储到一个变量中,该变量将被进一步使用。
问题是它需要在方法内部完成(获取 url 并传递它以获取响应)。
如何去做?
解决方案
对于使用外部 API 的 Spring Boot 应用程序,您可以使用 RestTemplate。
下面是一个使用示例。您收到的响应是字符串类型。
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.add("Header", "header1");
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("https://foo/api/v3/projects/1/labels")
.queryParam("param1", param1)
.queryParam("param2", param2);
HttpEntity<?> entity = new HttpEntity<>(headers);
HttpEntity<String> response = restTemplate.exchange(
builder.toUriString(),
HttpMethod.GET,
entity,
String.class);
推荐阅读
- c# - 在 web api 中验证 API 调用、请求有效或用户绕过某些调用的最佳方法是什么?
- c - 是否有在 ansi C 中制作抽象数据类型的标准方法?
- latex - LuaLaTeX:tabularx 环境中逐字环境的水平对齐
- python - 如何迭代对象属性并将用户输入分配给它们?
- sql - 如何在 sqlfile 模式下标记多个变更集
- macos - 如何将 Root CA 导入登录钥匙串以通过命令行获得对自签名 SSL 证书的支持
- sql - 插入 oracle 数据库,但有三列我不想重复
- windows - ValueError: 太多值无法解压 pgadmin4.11
- ruby-on-rails - Rails 5.2 SQLite布尔列在represent_boolean_as_integer为真时失败
- java - 如何修复“javax.swing.ImageIcon.
(来源不明)”?