2017-02-09 35 views
1

我有一個API,它通過它的位置和Blood Group搜索附近的用戶。 API網址是Get + in 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>(); 

我怎樣才能避免這種情況呢?

UPDATE

http://localhost:8080/api/users/search?userLatitude=23.3&userLongitude=232.3&bloodGroup=B%2F 

請求讓我bloodGroup=B/但& bloodGroup = B%2B讓我
bloodGroup=B

+0

你應該在編碼UTF-8的URL,+應該%2B – ravthiru

+0

代替我懷疑這是一件郵遞員或許我只是創建了最簡單的MVC控制器來回顯參數,當在URL中編碼爲%2B時顯示加號,也許在cURL或甚至只是在瀏覽器中嘗試相同的方法 – Strelok

+0

@Strelok我使用瀏覽器,但是你可以檢查我寫的更新嗎? 它是可怕的 –

回答