iOS में HTTP रिक्वेस्ट बनाने के लिए हम DataTask और सेशन्स का उपयोग करेंगे। हम कॉन्फिगरेशन, सेशन्स, URL, रिक्वेस्ट, और डेटा टास्क ऑब्जेक्ट्स बनाएंगे। आइए उन चरणों को देखें जिनसे हम गुजरेंगे।
चरण-दर-चरण
चरण 1: सेशन ऑब्जेक्ट बनाएं
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
चरण 2: URL रिक्वेस्ट बनाएं
फिर हमें जिस प्रकार की आवश्यकता है उस प्रकार का URL Request बनाना होगा, यह GET, POST, DELETE या PUT हो सकता है। इस उदाहरण में हम "POST" प्रकार देख रहे हैं।
let url = URL(string: URLString)
var request: URLRequest = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
चरण 3: डेटा टास्क परफॉर्म करें
एक बार रिक्वेस्ट ऑब्जेक्ट बन जाने के बाद, हमें ऊपर बनाए गए URL के साथ dataTask परफॉर्म करना होगा। यह है कि हमारा पूरा dataTask मेथड अब कैसा दिखना चाहिए।
let dataTask = session.dataTask(with: url!) { data, response, error in
guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
else {
print("error: not a valid http response")
return
}
switch (httpResponse.statusCode) {
case 200: // success response
break
case 400:
break
default:
break
}
}
dataTask.resume()
चरण 4: फंक्शन में एम्बेड करें
func hitAPI(_for URLString: String) {
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
let url = URL(string: URLString)
var request: URLRequest = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let dataTask = session.dataTask(with: url!) { data, response, error in
guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
else {
print("error: not a valid http response")
return
}
switch (httpResponse.statusCode) {
case 200: // success response
break
case 400:
break
default:
break
}
}
dataTask.resume()
}
नोट: कुछ APIs को एक्सेस करने के लिए आपको अपनी info.plist फाइल में Transport Security एक्सेप्शन्स की अनुमति देनी पड़ सकती है।
इस उदाहरण के साथ कोई आउटपुट नहीं दिखाया गया है क्योंकि कुछ डेटा पोस्ट करने के लिए एक API की आवश्यकता होती है।