
Alamofire در Swift
کتابخانهایست برای مدیریت ارتباطات اینترنتی اپلیکیشن.
نصب Alamofire
برای استفاده از Alamofire
در Swift
، ابتدا CocoaPods رانصب کنید. پس از نصب CocoaPods
، با اپ Terminal
، به مسیر پروژه رفته و عبارت زیر را تایپ کنید:
1 |
pod init |
با اجرای دستور بالا، در فولدر پروژه دو فایل به نامهای Podfile
و Podfile.lock
ایجاد شده است. فایل Podfile
رو با استفاده از یک TextEditor باز کنید و مانند زیر آن را تغییر دهید:
1 2 3 4 5 6 7 8 9 10 |
# Uncomment the next line to define a global platform for your project # platform :ios, '10.0' target 'Daftar' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for Daftar pod 'Alamofire', '~> 4.7' end |
دقت کنید که هنگام نگارش این نوشته، آخرین نسخه از Alamofire
، شماره ۴.۷ میباشد. برای نصب به صفحه گیتهاب Alamofire
مراجعه کنید (+).
پس از انجام تغییرات بالا، در ترمینال، دستور pod install
را وارد کنید تا podهای مورد نظر نصب شوند. پس از نصب، در فولدر پروژه یک فایل با پسوند .xcworkspace
ایجاد شده است. از این به بعد برای باز کردن پروژه از این فایل استفاده کنید.
هنگام باز کردن پروژه، کمی صبر کنید تا پروژه فایلهای جدید را ایندکس کند. بهتر است یک بار پروژه را Clean
و سپس Rebuild
کنید.
در ابتدای فایل ViewControlیی که می خواهید از Alamofire
استفاده کنید، import Alamofire
را وارد کنید تا بتوانید از Alamofire
استفاده کنید.
همانند کد زیر میتوانید به سرویس خود متصل شوید:
1 2 3 4 5 6 7 8 |
let parameters : Parameters = [ "mobile" : edtMobile.text!, "password" : edtPassword.text! ] Alamofire.request("Api url", method: .post, parameters: parameters).responseString { response in print(response) } |
در کد بالا ابتدا پارامترهای ارسالی در یک آرایه قرار گرفتهاند. با استفاده از request
یک درخواست ایجاد میشود. این درخواست حاوی آدرس Api، متد ارسالی، و همچنین پارامترهای ارسالی به Api میباشد. responseString
تعیین میکند که جواب بازگشتی به صورت یک رشته باشد و در response
قرار گیرد. همچنین response
چاپ میگردد.
اگر رشته بازگشتی شما به صورت json
باشد، میتوان با استفاده از پاد JASON
رشته را به صورت یک شیئ json
تبدیل کرد و از آن استفاده کرد. برای نصب JASON
در Podfile
خط زیر را اضافه کنید:
1 |
pod 'JASON', '~> 3.0' |
پس از اجرای دوباره دستور pod install
در ترمینال و نصب pod
مورد نظر، کدهای بالا رو به صورت زیر تغییر دهید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
let parameters : Parameters = [ "mobile" : edtMobile.text!, "password" : edtPassword.text! ] Alamofire.request("Api url", method: .post, parameters: parameters).responseString { response in print(response) let jsonResponse = JSON(response.result.value) if jsonResponse["is_login"].boolValue { print("Login") } else { print("Not login") } } |
با JSON
پاسخ برگشتی از Api تبدیل به یک شیئ json
میشود و می توان به روشهای گوناگون از آن استفاده کرد.
تست کدها با Slim FrameWork
برای تست کدهای بالا، پس از نصب Slim FrameWork در سرور، تابع زیر را در فایل routes.php
وارد کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$app->post('/login', function ($request) { $en_num = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); $fa_num = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'); $input = $request->getParsedBody(); $password_en = str_replace($fa_num, $en_num, $input['password']); $mobile_en = str_replace($fa_num, $en_num, $input['mobile']); $sql = "SELECT `password` FROM `users` WHERE `mobile`=:mobile AND `password`=:password"; $query = $this->db->prepare($sql); $query->bindParam("mobile", $mobile_en); $query->bindParam("password", $password_en); $query->execute(); $login_info = array(); $userInfo = $query->fetch(PDO::FETCH_ASSOC); if ($userInfo) { $login_info["is_login"] = true; } else { $login_info["is_login"] = false; } return $this->response->withJson($login_info); }); |