Spring Boot

[Spring Boot] RestTemplate 으로 ASP.Net 서버와 통신하려 할 때 특정 field 가 전송되지 않는 이슈(feat. Gson)

sggnology 2023. 5. 14. 23:33
728x90

발단

ASP.NET 이라고 규정할 수 없지만, 필자는 특정 서버와의 통신에서 왜 인지 특정 이유는 알 수 없지만 field 가 전달되지 않는 이슈를 겪었다.

 

설명

- 요청 메서드는 post 방식을 사용하였고 그에 따라 body 에는 객체를 담아 전송하였다.

- body 객체는 String 과 List<String> 을 포함하는 흔한 dto 이다.

- 왜인지 ASP.NET 서버는 field validation 에 실패하였다는 값을 응답하였고 필자가 전송할 때 실수한게 있나 싶어 cURL 로 요청을 보냈을 때 요청은 성공적이었다.

 

해결

- 설명에서 언급한대로 여전히 정확한 이유에 대해서는 알지 못한다.

- 그러나, cURL 로의 요청이 성공했다는 것을 근거로 객체의 serialize 과정에서 문제가 있을 수 있다고 생각하였다.

- 따라서, Gson 을 통해 json 형식의 string 값으로 변환하여 요청하였고, 결과는 성공이었다.

 

코드

var body = SomeObject(..)
var gson = Gson()
var jsonBody = gson.toJson(body)

restTempalte.exchange(
	...
	jsonBody,
	...
)
728x90