resttemplate在特殊字符上出现错误请求

b1zrtrql  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(368)

我的web应用程序调用外部restapi。
api中的一个查询参数采用string,string可以采用多个单词。
如果字符串包含单个单词,则可以不加引号地传递。
但如果它不止一个,就必须用双引号传递 " .
此参数可以包含特殊字符,如 & , , 等等,例如。 "Paper, Pencil" 我用的是Spring的 RestTemplate 打电话 org.springframework.web.client.RestTemplate .
当查询参数中只有一个单词时,api工作正常。但当我在双引号内传递多个单词时,它给出 400 Bad Request .
代码:

String baseURL = "http://api.myhost.com/";
String apiUrl = "my_test_api?q=*&searchParam=\"%s\"";       // Note: I've given double qoutes here.
String srchString = "Paper, Pencil";
String url = baseURL + format(apiUrl, fmno, srchString);    // format is from java.lang.String class.
....
// RestTemplate call here.

我注意到,双引号和空格正在被编码到 %22 & %20 分别但特殊字符如 & , , 正在以相同的方式通过。
我错过了什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题