iOS-এ HTTP রিকোয়েস্ট করতে আমরা DataTask এবং Session ব্যবহার করব। আমরা কনফিগারেশন, সেশন, URL, রিকোয়েস্ট এবং dataTask অবজেক্ট তৈরি করব। ধাপগুলো নিচে দেওয়া হলো।
প্রথমে ডিফল্ট কনফিগারেশন দিয়ে একটি সেশন অবজেক্ট তৈরি করুন।
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
তারপর আমাদের প্রয়োজনীয় টাইপের 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")
রিকোয়েস্ট অবজেক্ট তৈরি হলে, উপরের 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()
এখন এটি একটি ফাংশনে এম্বেড করে কোডে ব্যবহার করুন।
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
// 1: Check HTTP Response for successful GET request
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()
}
নোট: কিছু API এক্সেস করার জন্য info.plist-এ Transport Security এক্সেপশন আলাউ করতে হতে পারে।
এই উদাহরণে কোনো আউটপুট দেখানো হয়নি কারণ ডেটা পোস্ট করার জন্য একটি API প্রয়োজন।