আইওএস এর জন্য দারুণ একটা http নেটওয়ার্কিং লাইব্রেরী হচ্ছে Alamofire. আমরা দেখব কিভাবে Alamofire ব্যবহার করে http কল করা যায়। এর আগে আমরা আইওএস এর ডিফল্ট http রিকোয়েস্ট দেখেছি। ঐ লেখাতই বিস্তারিত পাওয়া যাবে আইওএস HTTP রিকোয়েস্ট পেইজে।
Alamofire অনেক ভাবেই ব্যবহার করা যায়। আমরা সবচেয়ে সহজ উপায় ব্যবহার করব। আমরা ডিফেনডেন্সি ম্যানেজার Cocoapods ব্যবহার করব। Cocoapods সম্পর্কে বিস্তারিত লিখেছি আইওএস এর dependency ম্যানেজার। ঐখানে উদাহরণ হিসেবে Alamofire কিভাবে প্রজেক্টে যুক্ত করতে হয়, তা দেখিয়েছি। আমরা এখন সিম্পল একটা প্রজেক্ট তৈরি করব। একটা http JSON Object কল করব এবং কল করে পাওয়া JSON ডেটা গুলো কনসোলে প্রিন্ট করব।
user.json নামে একটি json ফাইল রয়েছে, এটাই আমরা কল করব। আর তা খুবই সহজঃ
Alamofire.request(.GET, "http://jakir.me/files/user.json") .responseJSON { response in if let JSON = response.result.value { print("JSON: \(JSON)") } }
একটা রিকোয়েস্ট করা খুব সহজ। সম্পুর্ণ viewController.swift:
import UIKit import Alamofire class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() Alamofire.request(.GET, "http://jakir.me/files/user.json") .responseJSON { response in if let JSON = response.result.value { print("JSON: \(JSON)") } } // End Alamofire call }// End viewDidLoad }
উপরের কোডটি রান করলে নিচের মত একটা ইরর পাওয়া যাবেঃ
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.
এর কারণ হচ্ছে আমরা non secure একটা url কল করেছি। তার জন্য আমাদের প্রজেক্টটিকে একটু কনফিগার করে নিতে হবে যেন নন সিকিউর লিঙ্ক থেকেও আমরা ডেটা লোড করতে পারি। তা সম্পর্কে বিস্তারিত জানা যাবে আইওএস এ Transport Security Settings লেখাটি থেকে। Transport Security Settings ঠিক করে অ্যাপটি রান করলে আমরা কনসোলে নিচের মত আউটপুট পাবোঃ
ডেটা আমরা পাচ্ছি, এবার এ ডেটা গুলোকে সহজেই আমরা ব্যবহার করতে পারি আমাদের অ্যাপে। ভিউতে দেখাতে পারি। এরপর দেখব কিভাবে এ json ডেটা আমরা ভিউতে দেখাতে পারি। Alamofire এর গিটহাব পেইজেই বিস্তারিত রয়েছে কিভাবে এটি ব্যবহার করা যায়। ঐখান থেকে বিস্তারিত দেখব। আর সামনে আমরা বিভিন্ন প্রজেক্টে এটি ব্যবহার করব।