Java 春云合同-如何通过+&引用;(加号)作为.yaml文件中的查询参数

Java 春云合同-如何通过+&引用;(加号)作为.yaml文件中的查询参数,java,yaml,spring-cloud,Java,Yaml,Spring Cloud,当我尝试以不同的方式将“+”符号作为查询参数的一部分传递时,它会对任何结果进行编码 我希望用+380999418260值传递phone参数 尝试了最令人期待的正确方法: request: method: GET url: /customers/prepaid queryParameters: phone: "%2B380999418260" headers: Content-Type: application/x-www-form-urlencoded 还尝试直

当我尝试以不同的方式将“+”符号作为查询参数的一部分传递时,它会对任何结果进行编码

我希望用
+380999418260
值传递
phone
参数

尝试了最令人期待的正确方法:

request:
  method: GET
  url: /customers/prepaid
  queryParameters:
    phone: "%2B380999418260"
  headers:
    Content-Type: application/x-www-form-urlencoded
还尝试直接从url传递:

request:
  method: GET
  url: /customers/prepaid?phone=%2B380999418260
  headers:
    Content-Type: application/x-www-form-urlencoded
两人都说手机是
%2B380999418260

它从日志中转换%符号:

"X-Query-String":"phone=%252B380999418260"
我还尝试以非编码方式传递:

request:
  method: GET
  url: /customers/prepaid
  queryParameters:
    phone: "+380999418260"
  headers:
    Content-Type: application/x-www-form-urlencoded
但在本例中,它将+符号转换为空格字符

当我使用此uri从邮递员处访问此端点时,
/customers/预付费?phone=%2B380999418260
返回正确的响应,其中使用了带有“+”符号的正确电话。

根据,您不能直接传递
+
符号,应该对其进行编码。但在服务器端,您可以使用类对接收到的字符串进行解码:

根据,您不能直接传递
+
符号,它应该被编码。但在服务器端,您可以使用类对接收到的字符串进行解码:


@Pavel我使用反向函数
URLEncoder.encode(“+380999418260”)
对url的字符串进行编码。但无论如何,使用SpringCloud契约的问题是——我不能正确地传递加号,但我成功地通过了Postman。弹簧工具的问题。你能解释一下你想做什么吗?您通过url
/customers/preadmid?phone=%2B380999418260
发送请求,下一步是什么?当我从邮递员处发送请求时,
%2B380999418260
成功转换为
+380999418260
,并返回正确的响应。但是,当我从Spring Cloud合同中执行此操作时,它不会将
%2B380999418260
转换为任何内容,服务表示
%2B380999418260
不是正确的参数。您尝试过此操作吗<代码>url:/客户/预付费?电话=+380999418260。我想可能有用。是的,我试过了。它变为
phone=380999418260
。加号被转换为空格字符。@Pavel我使用了反向函数
URLEncoder.encode(“+380999418260”)
对url的字符串进行编码。但无论如何,使用SpringCloud契约的问题是——我不能正确地传递加号,但我成功地通过了Postman。弹簧工具的问题。你能解释一下你想做什么吗?您通过url
/customers/preadmid?phone=%2B380999418260
发送请求,下一步是什么?当我从邮递员处发送请求时,
%2B380999418260
成功转换为
+380999418260
,并返回正确的响应。但是,当我从Spring Cloud合同中执行此操作时,它不会将
%2B380999418260
转换为任何内容,服务表示
%2B380999418260
不是正确的参数。您尝试过此操作吗<代码>url:/客户/预付费?电话=+380999418260。我想可能有用。是的,我试过了。它变为
phone=380999418260
。加号将转换为空格字符。
String myString = "%2B380999418260";
URLDecoder.decode(myString, "ISO-8859-1");
// output: +380999418260