2017-10-16 10 views
0

에 내가하는 URLRequest에 다음 컬 요청 자신감이 저를주는 변환에 노력하고있어. 아직도 나는 응답을 얻는다 : 401 - 허가되지 않았다.변환 CURL 된 URLRequest

let key = "ttn-account-v2.<app-key>" 

let url = URL(string: "https://<app-id>.data.thethingsnetwork.org/api/v2/query") 

var request = URLRequest(url: url!) 

request.httpMethod = "GET" 
request.addValue("application/json", forHTTPHeaderField: "Accept") 
request.addValue("key \(key)", forHTTPHeaderField: "Authorization") 

let task = URLSession.shared.dataTask(with: url!) { data, response, error in 
    guard error == nil else { 
     print(error!) 
     return 
    } 
    guard let data = data else { 
     print("Data is empty") 
     return 
    } 

    let json = try! JSONSerialization.jsonObject(with: data, options: []) 
    print(json) 
} 
task.resume() 

내가 누락 된 상품이 있습니까?

+0

키 헤더가 정확한지 확인하십시오. 선택 사항 (...)으로 보내지 않는지 확인하십시오 –

답변

2

잘못된 점은 완벽한 요청을 작성한 다음 요청이 아닌 URL 만 사용하여 dataTask을 수행하여 모두 건너 뜁니다. 이렇게하면 HTTPHeaders은 요청과 함께 전송되지 않으므로 승인되지 않습니다. 작업 생성 라인을 다음으로 변경하십시오.

let task = URLSession.shared.dataTask(with: req) { data, response, error in 
    ... 
} 
+0

정말 고마워요! – ChrisTheGreat