@Dik_Nik

Как прочесть text/plain данные ответа сервера в @FeignClient?

Здравствуйте. Помогите пожалуйста разобраться.
У меня есть следующий контроллер на сервере
@RestController
@RequestMapping(path = "/models")
public class AppController {

    private ModelService modelService;

    @Autowired
    public AppController(ModelService modelService) {
        this.modelService = modelService;
    }

    @PostMapping(value = "/{modelName}/token")
    public String login(
            @PathVariable("modelName") String modelName,
            @RequestBody Auth auth
    ) {
        return modelService.login(modelName, auth);
    }
}


И следующий клиент:
@FeignClient(name = "connector")
@RequestMapping(path = "/models")
public interface ApiClient {
    @RequestMapping(method = RequestMethod.GET, value = "/{modelName}/token", consumes = MediaType.APPLICATION_JSON_VALUE)
    @ApiOperation("Getting a token for the model")
    String login(
            @PathVariable("modelName") String modelName,
            @RequestBody Auth auth
    );

}

Почему-то не могу прочесть ответ от сервера, который выглядит следующим образом:
HTTP/1.1 200 
    Content-Type: text/plain;charset=UTF-8
    Content-Length: 4
    Date: Thu, 11 Jul 2019 16:35:18 GMT
    
    !...!

Вылетает Exception:
org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter: Uncaught exception thrown
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is feign.FeignException: Unexpected character ('!' (code 33)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: (BufferedReader); line: 1, column: 2] reading GET http://localhost:9091/models/123/token
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)


Я так понимаю, он думает, что ему приходит json. Пробовал поставить produces = MediaType.TEXT_PLAIN_VALUE, но не дало никаких эффектов. Просто не замечает его.
  • Вопрос задан
  • 496 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы