예전에 되었는데…뭔가 제가 바꾼건지…왜 빈값이 나오는건지 이해가 안가네요
일단 200 코드는 잘 뜹니다.
var daumcomponents = URLComponents(string: "https://dapi.kakao.com/v2/local/search/keyword.json")!
let headers = ["Authorization":"KakaoAK RESTAPI"]
let parameters = ["x": "37.489517", "y":"127.031605","radius":"20000","query":"카카오프렌즈"]
var queryItems = [URLQueryItem]()
for (key, value) in parameters {
queryItems.append(URLQueryItem(name: key, value: value))
}
daumcomponents.queryItems = queryItems
var request = URLRequest(url: (daumcomponents.url)!)
for (key, value) in headers {
request.value(forHTTPHeaderField: key)
request.setValue(value, forHTTPHeaderField: key)
}
위와같이 잘 헤더값/패러미터를 넣어줍니다.
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200, error == nil else {
print("success")
print(String(describing: response))
print(String(describing: error))
return
}
print("start")
print(data).
print("response:")
print(response)
print(error)
print("end")
guard let json = try! JSONSerialization.jsonObject(with: data) as? [String: Any] else {
print("not JSON format expected")
print(String(data: data, encoding: .utf8) ?? "Not string?!?")
return
}
위에서 data값에 json으로 결과값이 리턴되어서 그걸 json으로 만들어서 아래와 같이 각각의 리턴 값을 처리해주는 코드입니다.
guard let results = json["documents"] as? [[String: Any]] else {return}
for result in results{
let resultvalue = (result["distance"] as! NSString).intValue
.............
로그를 보면 위의 start 찍힌부분부터 아래와 같습니다.
start
152 bytes
response:
Optional(<NSHTTPURLResponse: 0x1c0a397a0> { URL: https://dapi.kakao.com/v2/local/search/keyword.json?x=37.489517&radius=20000&query=카카오프렌즈&y=127.031605 } { status code: 200, headers {
“Access-Control-Allow-Headers” = “Authorization, KA, Origin, X-Requested-With, Content-Type, Accept”;
“Access-Control-Allow-Methods” = “GET, OPTIONS”;
“Access-Control-Allow-Origin” = “*”;
“Cache-Control” = “no-cache, no-store, max-age=0”;
Connection = “keep-alive”;
“Content-Encoding” = gzip;
“Content-Language” = “ko-KR”;
“Content-Type” = “application/json;charset=UTF-8”;
Date = “Thu, 21 Dec 2017 08:04:12 GMT”;
Expires = “Thu, 01 Jan 1970 00:00:00 GMT”;
Pragma = “no-cache”;
Server = nginx;
“Transfer-Encoding” = Identity;
Vary = “Accept-Encoding”;
“X-Request-Id” = “87ed1710-e625-11e7-abf6-cb93d4ce0014”;
} })
nil
end
error는 나지않았고 data, response에 위와같은 값이 들어있네요…
뭐가 문제일까요? ㅜㅠ
감사합니다.