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