Специальные символы в параметрах запроса Spring

1

у меня есть

@RequestMapping(value ="/getTaxiByPhone",method = RequestMethod.GET)
public @ResponseBody
String getTaxiByPhone(@RequestParam ("phone") String phone){
    int count=0;
    for (int i=0; i<taxiList.size();i++){
        if ((taxiList.get(i).getPhone()).equals(phone)){
            count++;
        }
    }
    return "found "+count;
}
@RequestMapping(value ="/getTaxiPhone",method = RequestMethod.GET)
public @ResponseBody
String getAllTaxi(@RequestParam ("id") int id){
    return taxiList.get(id).getPhone();
}

@RequestMapping(value ="/getAllTaxi",method = RequestMethod.GET)
public @ResponseBody
List<Taxi> getAllTaxi(){
    return taxiList;
}

Например, getTaxi?id=2 возвращен {"taxi_city_id":[55000001,67000001],"taxi_id":1113,"taxi_name":"zxcv","taxi_phon‌​e":"+73812999997"}, но если вы попробуете getTaxiByPhone?phone=+73812999997 вы не найдете никаких объектов, потому что если вы попробуете вернуть параметр телефона со счетом (return "found "+count+" for phone"+ phone;), вы увидите found 0 for phone 73812999997. Это означает, что знак "+" потерян при использовании URL-адреса весны.

  • 0
    Просто обратите внимание, вы выполняете запрос к URL-адресу, оканчивающемуся на getTaxiPhone?id=<id> right?
  • 0
    да, например, если я делаю / getTaxiPhone? id = 2, я получаю строку +73812999997, но если делаю / getTaxiByPhone? phone = + 73812999997, я не могу найти объекты
Показать ещё 7 комментариев
Теги:
spring

1 ответ

1
Лучший ответ

Я думаю, что это может быть проблема со специальными символами, потому что вы передаете номер телефона с "+" в своем запросе. Запрос запроса + в URL-адресе используется для представления пространства, в котором вы должны его избегать, возможно, с помощью

%2B

источник

  • 0
    Возьмите эту дополнительную информацию здесь и скопируйте соответствующие биты в ваш ответ.
  • 0
    Нет, Spring уже справляется с этим, иначе многие люди уже перестали бы использовать его в реальных приложениях по всему миру.
Показать ещё 12 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню