매개 변수가있는 GET은 어떤 방법으로 신속하게 요청됩니까?매개 변수가 포함 된 GET 요청
예 : 사전에
https://my-side.com/data?token=AS7F87SAD84889AD/
감사합니다!
매개 변수가있는 GET은 어떤 방법으로 신속하게 요청됩니까?매개 변수가 포함 된 GET 요청
예 : 사전에
https://my-side.com/data?token=AS7F87SAD84889AD/
감사합니다!
예는 어떻게 요청 URLQueryItem
를 사용합니다.
func getRequest(params: [String:String]) {
let urlComp = NSURLComponents(string: "https://my-side.com/data")!
var items = [URLQueryItem]()
for (key,value) in params {
items.append(URLQueryItem(name: key, value: value))
}
items = items.filter{!$0.name.isEmpty}
if !items.isEmpty {
urlComp.queryItems = items
}
var urlRequest = URLRequest(url: urlComp.url!)
urlRequest.httpMethod = "GET"
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: urlRequest, completionHandler: { (data, response, error) in
})
task.resume()
}
getRequest(params: ["token": "AS7F87SAD84889AD"])
올바르게 기억한다면,'items'가 비어 있다면 (params가 없다면), "?" urlComp.queryItems = items'는'items'가 비어 있지 않은 경우에만 수행합니까? – Larme
@Larme 당신 말이 맞아요. 지금 코드 수정 중입니다. –
그럼 난 이렇게 내 HTTP 요청을 처리하고 있습니다 :
func getData(completionHandler: @escaping ((result:Bool)) ->()) {
// Asynchronous Http call to your api url, using NSURLSession:
guard let url = URL(string: "https://my-side.com/data?token=AS7F87SAD84889AD/") else {
print("Url conversion issue.")
return
}
var request = URLRequest(url: url)
request.httpMethod = "GET"
URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) -> Void in
// Check if data was received successfully
if error == nil && data != nil {
do {
// Convert NSData to Dictionary where keys are of type String, and values are of any type
let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String:AnyObject]
//do your stuff
completionHandler(true)
} catch {
completionHandler(false)
}
}
else if error != nil
{
completionHandler(false)
}
}).resume()
}
params를 요청에 어떻게 추가합니까? –
url에 매개 변수가 들어 있습니다. – Kingalione
유동적이지는 않지만 하드 코딩 되었기 때문에 약간 잘못된 동작입니다. –
'NSURLQueryItem'. – Larme