Как выполнить третий вызов API шаблона REST?

#java #spring-boot #api #rest

Вопрос:

Я использую следующий код:

 public static String getResponse(String jsonString) throws Exception {

    final String uri = "some_url_which_accepts_string";

    RestTemplate restTemplate = new RestTemplate();
    String result = restTemplate.getForObject(uri, String.class, jsonString);

    System.out.println(result);
    return resu<
}
 

но я не могу назвать это правильно. Неправильный синтаксис или я что-то упускаю?

Комментарии:

1. Какое исключение вы получаете

2. не удается найти ошибку jsonString локальной переменной, но эта строка JSON содержит нужную строку.

Ответ №1:

Это ожидаемые способы.

 getForObject(URI url, Class<T> responseType) 

 getForObject(String url, Class<T> responseType, Object... uriVariables)

 getForObject(String url, Class<T> responseType, Map<String,?> uriVariables) 
 

И как вы передаете строку
, иначе вы можете создать одну хэш-карту и попробовать, как показано ниже?

  1. если вы передаете какие-либо параметры запроса, попробуйте, как показано ниже
      String URL = some_url_which_accepts_string?param={param}
    
     Map<String, String> map = new HashMap<>();
        map.put("param", "paramvalue");
    
     RestTemplate restTemplate = new RestTemplate();
         String result = restTemplate.getForObject(uri, String.class, map);
     
  2. Или вы можете попробовать, как показано ниже
 URI targetUrl= UriComponentsBuilder.fromUriString(some_url_which_accepts_string) 
    .path("path")                            
    .queryParam("name", value)                                
    .build()                                                 
    .encode()                                                
    .toUri();                                                

RestTemplate restTemplate = new RestTemplate();
            String result = restTemplate.getForObject(targetUrl, String.class);