본문 바로가기
Swift/UIKit

[UIkit] 공공데이터 활용하기, serviceKey, Application_ERROR 해결

by 마라민초닭발로제 2023. 3. 14.

 

정리 : applicationError는 post요청하는 params에 문제가 있었다. 혹시 비슷한 에러를 찾기 위해 찾아온다면 문서를 잘 읽고 코드를 잘 보면 해결 됨!

 

Alamofire로 통신하면 편함

https://github.com/Alamofire/Alamofire

 

GitHub - Alamofire/Alamofire: Elegant HTTP Networking in Swift

Elegant HTTP Networking in Swift. Contribute to Alamofire/Alamofire development by creating an account on GitHub.

github.com

 

오늘의 리빙 포인트 :  REST요청 할 때 인코딩을 하니, 인코딩된 값(API값)을 넘기면 안된다!

 

API키 입력부분에 encdoing키가 아닌 decode 키 값을 입력해야 한다.

 

    func getCircularData() {
        
        let secretKey = "API키 입력~"
        let url = "http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst"
        let params: Parameters = [
            "serviceKey" : secretKey,
            "numOfRows" : "10",
            "pageNo" : "1",
            "dataType" : "JSON",
            "base_date" : "20230314",
            "base_time" : "0600",
            "nx" : "57",
            "ny" : "124"
        ]
        let response2 = AF.request(url,
                                   method: .get,
                                  parameters: params,
                                   encoding: URLEncoding.default,
                                  headers: nil)
            .responseJSON { response in
                print("여기까지 들옴?")
                
                switch response.result {
                case .failure(let error):
                    print("에러임?")
                    print(error)
                
                case .success(let data):
                    print(data)
                    print("석세스")
                    print(response.request)
                }
            }

중간에 자꾸 resultCode: 01, APPLICATION_ERROR 떠서 맨붕했지만(삽질)...

떠서 맨붕 했지만, 다행스럽게도 params에 값을 잘못 넘겨서 일어난 사단이었다 후훗... 잘 해결 했으니 다행이당.