(iOS) OpenAPI 호출할때 주의할 점. NSUTF8StringEncoding 사용하기

Dec 26, 2012/Jul 03, 2015

올해 한우찾기 v2.3.5 버전을 개발하면서 새로 넣은 기능이 바로 뉴스검색 기능이었다. 간단히 네이버 OpenAPI 검색 기능을 이용해서 한우관련 뉴스를 사용자가 직접 검색할 수 있도록 제공하는 기능이었는데 만드는 과정에서 특별한 문제가 있어서 이렇게 디버그 포스팅을 한다. 

보통 OpenAPI는 URL을 이용해서 값을 전달하는 방식을 이용한다. 예를들어 아래와 같은 URL과 같은 형식이다. 

http://openapi.naver.com/search?key=776db69199654df9385aa576bd4dcef&query=한우&target=news&start=1&display=10

key부분을 따로 발급받아서 웹 브라우저에 붙이면 검색된 결과 10개가 RSS

문제는 query 부분에 공백이 들어갈 경우에 생긴다. 예를 들어 한우가 아닌 “한우 찾기” 라고 query 부분에 입력을 해서 브라우저에 붙여보면 공백 부분에 “%20” 이라는 문자가 생긴것을 볼 수가 있다. 그래서 반드시 NSString 으로 URL을 구성하는 과정에서 마지막에 아래와 같이 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 작업을 해줘야 한다. 해주지 않으면 검색 시스템에서 공백인지를 인지하지 못해서 검색결과가 나오지 않는 문제가 생긴다. 




#dev  #IOS  #Objective-C  #OpenAPI  #url encoding  #네이버 검색 API