Thursday, February 17, 2011

우체국 Open API 인코딩 문제

우체국에서 제공하는 우편번호 Open API를 쓰려다 당황스러운 경험을 했다.
정상적으로 호출하는데 우편번호 목록이 하나도 넘어오지 않는 것.
원인은 URL 인코딩을 하지 않고 호출을 하는데 있었다.
어지간히 단가가 쌌던 모양이다. 어쨌든..


해결방법은 GET이 아닌 POST를 사용하고 URL 인코딩을 안하면 된다.

import urllib2
url="http://biz.epost.go.kr/KpostPortal/openapi"
data="regkey=%s&target=post&query=%s"%(API_KEY,unicode(QUERY_STRING,"utf-8").encode("euc-kr"))
urllib2.urlopen(url,data)


대충 이런 식으로

1 comment:

  1. 감사합니다. 많은 도움이 되었습니다. 존경과 감사를 담아 refer합니다. http://jinahya.wordpress.com/2012/08/12/%EC%9D%B8%ED%84%B0%EB%84%B7-%EC%9A%B0%EC%B2%B4%EA%B5%AD-%EC%82%AC%EC%97%85%EC%9E%90-%ED%8F%AC%ED%84%B8-%EC%98%A4%ED%94%88api/

    ReplyDelete