在网址中获取+而不是省略空格

时间:2017-02-09 05:52:25

标签: spring rest jersey

我有一个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 !!!

1 个答案:

答案 0 :(得分:0)

如果要发送特殊字符,则需要对URL进行编码。 使用URLEncoder对带有特殊字符的网址字符串进行编码。

http://localhost:8080/api/users/search?userLatitude=23.3&userLongitude=232.3&bloodGroup= “+ URLEncoder.encode(” +”, “UTF-8”)