我的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
分别但特殊字符如 &
, ,
正在以相同的方式通过。
我错过了什么?
暂无答案!
目前还没有任何答案,快来回答吧!