Недопустимое исключение mimetype в вызове Spring для загрузки покоя - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в весенних загрузочных и остальных вызовах.

Я пытаюсь использовать службу отдыха, и у меня нет никакой информации об этом API отдыха, кроме URL.Когда я нажимаю этот URL из браузера, я получаю ответ как {key: value}.Итак, я предположил, что это ответ JSON.

Я использую его при весенней загрузке следующим образом restTemplate.getForObject(url, String.class).

Это дает Invalid mime type "content-type: text/plain; charset=ISO-8859-1": Invalid token character ':' in token "content-type: text"

Я предполагаю, что эта ошибка вызвана тем, что тип содержимого ответа установлен на text / plain, но он возвращает формат JSON.

РЕДАКТИРОВАТЬ:

Попробовал этот способ, но не сработало.

HttpHeaders headers = new HttpHeaders();     
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

HttpEntity<String> entity = new HttpEntity<String>("parameters",headers);   
ResponseEntity<String> result = restTemplate.exchange(url,HttpMethod.GET, 
                                             entity, String.class);

Как справиться и решить это?

1 Ответ

0 голосов
/ 03 декабря 2018

Возможно, вы захотите прочитать о заголовках запросов, необходимых вашему REST API.В заголовке Content-Type указывается тип мультимедиа запроса, который вы отправляете на сервер.Поскольку вы просто получаете данные с сервера, вы должны установить заголовок Accept в соответствии с тем типом ответа, который вы хотите, например, Accept: application/json.

К сожалению, вы не можете установить заголовки, используя getForObject().Вы можете попробовать это:

URL url = new URL("Enter the URL of the REST endpoint");
        con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod("GET");
        con.setRequestProperty("Accept", "application/json");
        if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            StringBuffer content = new StringBuffer();
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                content.append(inputLine);
            }
            in.close();
        }
...