Spring RestTemplate Post запрос

208
09 апреля 2018, 02:22

Как отправить 3 переменных из одной программы в другую?

Есть 3 переменных:

  1. Integer (цифра 15)
  2. Integer (цифра 15)
  3. Integer (цифра 10)
  4. String (строка в виде json)

Отправляю так:

HashMap<String, Object> map = new HashMap<>();
map.put("code1", 15);
map.put("code2", 10);
map.put("json", jsonString);
restTemplate.postForEntity(url, this.getRequest(), responseType, map);

Проблема в том, что на другой стороне все переменные null. Если из map убрать json то значение переменных норм.

@RestController
@RequestMapping("/")
public class CourtController {
@RequestMapping(value = "/set", method = RequestMethod.POST, produces = "application/json")
    public ResponseDto setStatement(
            @RequestParam(value = "code1", defaultValue = "") Integer code1,
            @RequestParam(value = "code2", defaultValue = "") Integer code2,
            @RequestParam(value = "json", defaultValue = "") String json) {
            ***
    }
}
Answer 1

Попробуйте принимать не параметрами, а объектом. Что-то вроде:

public ResponseDto setStatement(@RequestBody Map map) { ... }

Мне кажтеся дело в том, что вы передаете данные в виде json - объекта, а принимате в виде параметров. То есть, нарушаете стандарт HTTP. Рекомендую убрать map и гонять данные из сервиса в сервиса в виде некоторого объекта вашего класса. Так будет сохраняться явный контракт между сервисами.

READ ALSO
Vuforia в Android Studio - где взять уроки

Vuforia в Android Studio - где взять уроки

Нашел множество материалов по разработки AR при помощи Vuforia в UnityНо каких-либо статей/книг/сайтов по разработки с Vuforia в Android Studio на Java найти...

291
Чтение из файла Java

Чтение из файла Java

Подскажите как лучше сделатьВ файле сплошным текстом идет строка примерно 35 млн символов, как ее лучше считать в тип String

173
Если хеш-функция для строк исключает возможность коллизии, то набор хеш-кодов {1101, 115, 1103} может быть сгенерирован для строкового массива

Если хеш-функция для строк исключает возможность коллизии, то набор хеш-кодов {1101, 115, 1103} может быть сгенерирован для строкового массива

Если хеш-функция для строк исключает возможность коллизии, то набор хеш-кодов {1101, 115, 1103} может быть сгенерирован для строкового массива

277