본문 바로가기

Trouble Shooting

[Trouble Shooting] 기상청 API 호출 시 URL 이중 인코딩 문제

문제 정의

  1. URL 인코딩 문제
    • UriComponentsBuilder를 사용하여 serviceKey (인코딩 된 인증 키)를 설정하는 과정에서 문제가 발생했습니다.
    • encode()를 사용하더라도 이중 인코딩 문제가 발생하여 URL이 제대로 완성되지 않았습니다.
    • 이로 인해 계속적인 serviceKey 에러가 발생했습니다.

 

해결 과정

  1. UriComponentsBuilder 기본 설정의 인코딩 문제
    • serviceKey와 UriComponentsBuilder 간의 이중 인코딩 문제로 인해 에러가 계속 발생했으며, 이는 serviceKey가 올바르게 인코딩되지 않았음을 나타냈습니다.
  2. 다른 URL 조작 클라이언트 사용 고려
    • UriComponentsBuilder 대신 다른 URL 조작 클라이언트를 사용하는 방법을 고려하거나, UriComponentsBuilder의 인코딩 옵션을 변경해야 했습니다.
    • 기본 설정으로는 인코딩 문제를 해결하지 못하는 경우, URI 구성 요소의 인코딩을 수동으로 설정할 수 있습니다.

 

해결

  1. URI 클래스 사용
    • URI 클래스를 사용하여 자동 인코딩을 피하고 이중 인코딩 문제를 해결했습니다.
  2. UriComponentsBuilder 인코딩 설정 조정
    • UriComponentsBuilder로 URI를 생성할 때, build(false) 설정을 사용하여 인코딩 처리를 강제하지 않고 수동으로 URI를 구성했습니다. 이 방법은 serviceKey와 같은 특정 값을 올바르게 인코딩하는 데 필요할 수 있습니다.