我有一个api,按其位置和Blood Group搜索附近的用户。 Api url是
http://localhost:8080/api/users/search?userLatitude=23.3&userLongitude=232.3&bloodGroup=B+
每当我在邮递员中请求它时,我发现在查询参数中省略了+和空格。所以我得到的是bloodGroup=B
我的代码如下:
@GET
@Path("/search")
@Produces("application/json")
public Response searchByBloodGroup(
@QueryParam("userLatitude") String userLatitude,
@QueryParam("userLongitude") String userLongitude,
@QueryParam("bloodGroup") String bloodGroup) {
logger.debug(">> searchByBloodGroup({},{},{},{})", userLatitude, userLongitude, bloodGroup);
Map<Object, Object> apiResponse = new HashMap<Object, Object>();
Map<Object, Object> response = new HashMap<Object, Object>();
我怎样才能避免这种情况?
更新
请求
http://localhost:8080/api/users/search?userLatitude=23.3&userLongitude=232.3&bloodGroup=B%2F
得到我
bloodGroup=B/
但是&amp; bloodGroup = B%2B给了我bloodGroup=B
!!!
答案 0 :(得分:0)
如果要发送特殊字符,则需要对URL进行编码。 使用URLEncoder对带有特殊字符的网址字符串进行编码。
http://localhost:8080/api/users/search?userLatitude=23.3&userLongitude=232.3&bloodGroup= “+ URLEncoder.encode(” +”, “UTF-8”)