Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Есть код запроса на внешний апи. Он рабочий(т.е. запрос валидный и получаем валидный ответ).

ResponseEntity response = restTemplate.getForEntity(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   GenericResponse.class

);

Его проблема, что GenericResponse параметрезированный, поэтому делаю так. 

ResponseEntity> response = restTemplate.exchange(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   HttpMethod.GET,

   null, // requestEntity

   new ParameterizedTypeReference<>() {}

);

Но в этом случае внешний сервис отвечает "Method GET not allowed". Не могу понять почему, ендпоинт же не менялся. getForEntity тоже использует HttpMethod.GET.

 

Не знаю кто тут шарит, знаю только @Armagedonby_ZERGS @Adramanov 

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

AtagaN

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

Aragorn_ сказал(а):

Есть код запроса на внешний апи. Он рабочий(т.е. запрос валидный и получаем валидный ответ).

ResponseEntity response = restTemplate.getForEntity(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   GenericResponse.class

);

Его проблема, что GenericResponse параметрезированный, поэтому делаю так. 

ResponseEntity> response = restTemplate.exchange(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   HttpMethod.GET,

   null, // requestEntity

   new ParameterizedTypeReference<>() {}

);

Но в этом случае внешний сервис отвечает "Method GET not allowed". Не могу понять почему, ендпоинт же не менялся. getForEntity тоже использует HttpMethod.GET.

 

Не знаю кто тут шарит, знаю только @Armagedonby_ZERGS @Adramanov 

Нажмите, чтобы раскрыть...

 

Видимо endpointPath у тебя разный

Попробуй еще параметризировать:

new ParameterizedTypeReference() {}

Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

AtagaN сказал(а):

 

Видимо endpointPath у тебя разный

Попробуй еще параметризировать:

new ParameterizedTypeReference() {}
Нажмите, чтобы раскрыть...

всм?

ну типо endpointPath же и там и там тот же юзаю

 

AtagaN сказал(а):

 

Видимо endpointPath у тебя разный

Попробуй еще параметризировать:

new ParameterizedTypeReference() {}
Нажмите, чтобы раскрыть...

Он неявно параметрезирован, типо так

new ParameterizedTypeReference < GenericResponse < T > > () {}

Armagedonby_ZERGS

Пользователь

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Armagedonby_ZERGS

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Aragorn_ сказал(а):

Есть код запроса на внешний апи. Он рабочий(т.е. запрос валидный и получаем валидный ответ).

ResponseEntity response = restTemplate.getForEntity(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   GenericResponse.class

);

Его проблема, что GenericResponse параметрезированный, поэтому делаю так. 

ResponseEntity> response = restTemplate.exchange(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   HttpMethod.GET,

   null, // requestEntity

   new ParameterizedTypeReference<>() {}

);

Но в этом случае внешний сервис отвечает "Method GET not allowed". Не могу понять почему, ендпоинт же не менялся. getForEntity тоже использует HttpMethod.GET.

 

Не знаю кто тут шарит, знаю только @Armagedonby_ZERGS @Adramanov 

Нажмите, чтобы раскрыть...

Дай гитхаб. Ничего по коду не понятно. 

Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Armagedonby_ZERGS сказал(а):

Дай гитхаб. Ничего по коду не понятно. 

Нажмите, чтобы раскрыть...

Как я тебе его дам?) Это коммерческий код)

restTemplate для запроса на вшенишний сервис, маппит в  GenericResponse< DTO TYPE > 

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

AtagaN

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

Aragorn_ сказал(а):

всм?

ну типо endpointPath же и там и там тот же юзаю

 

Он неявно параметрезирован, типо так

new ParameterizedTypeReference < GenericResponse < T > > () {}
Нажмите, чтобы раскрыть...

 

Вместо

new ParameterizedTypeReference<>() {}

Подставь тип в который конвертить ответ. Например String.
final ResponseEntity responseEntity = restTemplate.exchange(

       GET_URL,

       HttpMethod.GET,

       request,

       String.class

);

Включи логгирование DEBBUG или TRACE и сравни на какие эндпойнты и что у тебя отправляется

Armagedonby_ZERGS

Пользователь

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Armagedonby_ZERGS

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Aragorn_ сказал(а):

Как я тебе его дам?) Это коммерческий код)

Нажмите, чтобы раскрыть...
 

Тогда напиши в личку

 

 

Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

AtagaN сказал(а):

 

Вместо

new ParameterizedTypeReference<>() {}

Подставь тип в который конвертить ответ. Например String.
final ResponseEntity responseEntity = restTemplate.exchange(

       GET_URL,

       HttpMethod.GET,

       request,

       String.class

);

Включи логгирование DEBBUG или TRACE и сравни на какие эндпойнты и что у тебя отправляется
Нажмите, чтобы раскрыть...

Это так не работает, нельзя сделать GenericResponse< T > .class, поэтому и использую TypeReference

richard1453

Пользователь

Регистрация: 30.05.2013

Сообщения: 293

Рейтинг: 200

richard1453

Регистрация: 30.05.2013

Сообщения: 293

Рейтинг: 200

DrakeNo.png?1619501097 - stackoverflow 

DrakeYes.png?1619501106 - d2ru

InQaaa

Пользователь

Регистрация: 10.01.2022

Сообщения: 1

Рейтинг: -1

InQaaa

Регистрация: 10.01.2022

Сообщения: 1

Рейтинг: -1

Aragorn_ сказал(а):

Есть код запроса на внешний апи. Он рабочий(т.е. запрос валидный и получаем валидный ответ).

ResponseEntity response = restTemplate.getForEntity(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   GenericResponse.class

);

Его проблема, что GenericResponse параметрезированный, поэтому делаю так. 

ResponseEntity> response = restTemplate.exchange(

   serviceUrl + "/" + endpointPath + "?limit=" + pageSize + "&offset=" + offset + "&from=" + timeFrom,

   HttpMethod.GET,

   null, // requestEntity

   new ParameterizedTypeReference<>() {}

);

Но в этом случае внешний сервис отвечает "Method GET not allowed". Не могу понять почему, ендпоинт же не менялся. getForEntity тоже использует HttpMethod.GET.

 

Не знаю кто тут шарит, знаю только @Armagedonby_ZERGS @Adramanov 

Нажмите, чтобы раскрыть...

Читай мат-часть. тебе ответ явный говорят - ты GETом ломаишься в энпоинт который может только принимать POST, поменяй вызов с гет на пост..

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

AtagaN

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

Aragorn_ сказал(а):

Это так не работает, нельзя сделать GenericResponse< T > .class, поэтому и использую TypeReference

Нажмите, чтобы раскрыть...

Ну если тебе надо мапить в твой GenericResponse< T > пожалуйста. 

Тогда изначально надо было писать типа

final ResponseEntity responseEntity = restTemplate.exchange(

       GET_URL,

       HttpMethod.GET,

       request,

       new ParameterizedTypeReference{GenericResponse{String}}() {}

 );

Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

InQaaa сказал(а):

Читай мат-часть. тебе ответ явный говорят - ты GETом ломаишься в энпоинт который может только принимать POST, поменяй вызов с гет на пост..

Нажмите, чтобы раскрыть...

ливни в чата клоун спс)

AtagaN сказал(а):

Ну если тебе надо мапить в твой GenericResponse< T > пожалуйста. 

Тогда изначально надо было писать типа

final ResponseEntity responseEntity = restTemplate.exchange(

       GET_URL,

       HttpMethod.GET,

       request,

       new ParameterizedTypeReference\>() {} 

 );
Нажмите, чтобы раскрыть...

так я же так и делаю)

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

AtagaN

Регистрация: 04.11.2016

Сообщения: 1077

Рейтинг: 303

Aragorn_ сказал(а):

ливни в чата клоун спс)

 

так я же так и делаю)

Нажмите, чтобы раскрыть...
Включи логгирование DEBBUG или TRACE и сравни на какие эндпойнты и что у тебя отправляется

Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

AtagaN сказал(а):
Включи логгирование DEBBUG или TRACE и сравни на какие эндпойнты и что у тебя отправляется
Нажмите, чтобы раскрыть...
Armagedonby_ZERGS сказал(а):

Тогда напиши в личку

 

Нажмите, чтобы раскрыть...

Та я манал, я не ту версию апи юзал короче)PepeCringe.png?1598477741

 

Aragorn_

Пользователь

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

Aragorn_

Регистрация: 20.12.2021

Сообщения: 389

Рейтинг: 48

Нарушения: 100

del