- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有参数的多重映射,如下所示:
{
keyA: ["2+4", "4+8"],
keyB: ["Some words with special chars #ąęć"]
}
作为 spring MultiValueMap
并且我试图从中创建 URI,我尝试使用
URI uri = UriComponentsBuilder
.fromUriString(baseUri).path(somePath)
.queryParams(params.getQueryParameters())
.build().encode().toUri();
它似乎适用于特殊字符,但它仍然认为 +
符号是一个空格,我想对所有参数进行编码,除了手动编码每个值之外,是否有现有的解决方案?
最佳答案
假设您使用的是 Spring 5.0,[SPR-16860] Spring is inconsistent in the encoding/decoding of URLs 中对此进行了详细讨论。问题。或多或少可以归结为:
From an RFC 3986 perspecitve, "+" is a legal character. By default the RestTemplate leaves it as is.
UriComponents.encode()
将保留 +
符号不变,以符合 RFC 3986。如果您需要对其进行编码,建议使用 UriUtils
:
String value = "A+B=C";
value = UriUtils.encode(value, StandardCharsets.UTF_8); // A%2BB%3DC
URI uri = UriComponentsBuilder.newInstance()
.queryParam("test", value)
.build(true)
.toUri();
作为 [SPR-17039] Support stricter encoding of URI variables in UriComponents 的一部分,5.0.8 将进行一项更改其中引入了新的UriComponentsBuilder.encode()
方法。在您的示例中,将 encode()
移到 build()
之前就足够了:
URI uri = UriComponentsBuilder
.fromUriString(baseUri).path(somePath)
.queryParams(params.getQueryParameters())
.encode()
.build()
.toUri();
关于java - 如何使用 MultiValueMap 作为参数创建 URI/URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53084916/
嗨,我正在尝试访问 Hashmap 中的 MultiValueMap 这是我的 HashMap projectDetails HashMap private HashMap classDetailsM
我创建了一个 MultiValueMap,它有重复的键。我想知道如何获取重复键及其值的列表? key value A 4 A 6 B 7 C
我最近从 php 转向了 java,所以我的 java 技能相当低。 在我的代码中,我有一个名为 queryParams 的 MultiValueMap MultiValueMap queryPara
我正在使用 Apache Collections 中的 MultiValueMap 来收集不同类型的单词(名词、动词等),并且我想在继续之前检查是否至少拥有每种单词类型之一。 总体轮廓如下(启动按键后
在一个地方,我必须使用一个映射,其中许多值映射到一个键,所以我想知道使用 HashMap of key, list 和 之间是否有任何显着的性能差异Java 中键、值的多映射。 最佳答案 您可以尝试一
我的服务出现问题。以下是我的服务 @POST @Path("/config") @Consumes(MediaType.APPLICATION_JSON) public Response saveCo
我使用此代码从 HTTP 请求中获取值: @PostMapping(consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, value = "/
我有一个 MultiValueMap 我正试图从中获取[出于这个问题的目的而打印] 使用相同 key 放入 map 中的所有路径。 这是我目前的解决方案: MultiValueMap duplicat
我有一个 MultiMap 假设 Company 以 String 作为键,另一个 MultiMap 假设 Employee 为值。 Employee Multimap 将 String 作为键,将另
Apache Commons Collections 的 4.0 版库添加了泛型支持。我在转换我的代码以利用它时遇到问题: 我想要一个 MultiValueMap 它以字符串作为键,以字符串集合作为值
我想像这样构建一个 JSON: { "Id": "33396", "Actions": [ { "Key": "5", "Value": "Test"
我有一个问题,如何为这个 hashmap 设置值并模拟它 Map > idsrcMp = new HashMap<>(3); 最佳答案 我不确定“设置值并模拟它”是什么意思。你想设置值或模拟它吗? 您
这是我正在考虑做的事情,我想知道您是否认为这是一个好主意。 我从数据库中检索了一堆行,在 groovy 中它为我提供了一个列表列表,如下所示: [ [ 'Dog', 'M', 'Mutt', 'S
我有参数的多重映射,如下所示: { keyA: ["2+4", "4+8"], keyB: ["Some words with special chars #ąęć"] } 作为 sp
我已经在 Spring boot 中实现了 OAuth2。在 JUnit 中测试它时效果很好,但当我在 postman 中尝试该 API 时,我总是遇到未经授权的情况。 JUnit 中的测试函数: p
我需要一个 TreeMap可以容纳多个值,所以我选择了 MultiValueMap来自 Commons Collections 4.0 用HashMap很简单 private MultiValueM
下面给出了 org.apache.commons.collections.map.MultiValueMap 的示例(来自 commons-collections-3.2.1) Map multiVa
我想发送一个 POST 请求,其中包含一个文件和另一个使用 restTemplate 的自定义对象。我试过下面的代码,但没有成功,因为它缺少 java.io.File 的 HtttpMessageCo
我正在尝试将 map 转换为多值 map ,但出现以下编译异常: Wrong 1st argument type. Found: java.util.Map>, required: org.sprin
我正在使用 spring2.5。并尝试为ajax上传实现自定义CommonsMultipartResolver。 提交表单后,出现以下错误: org.springframework.web.util.
我是一名优秀的程序员,十分优秀!