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
!
你應該在編碼UTF-8的URL,+應該%2B – ravthiru
代替我懷疑這是一件郵遞員或許我只是創建了最簡單的MVC控制器來回顯參數,當在URL中編碼爲%2B時顯示加號,也許在cURL或甚至只是在瀏覽器中嘗試相同的方法 – Strelok
@Strelok我使用瀏覽器,但是你可以檢查我寫的更新嗎? 它是可怕的 –