2015-04-29 14 views
5

ile eşdeğer Alamofire eşdeğeri AFNetworking ile AFHTTPSessionManager uygulamasına özgü bir alt sınıf oluşturma önerisi takip ettim. Mine bu gibi görünüyordu:AFHTTPSessionManager

static NSString* Username = @""; 
static NSString* Password = @""; 
static NSString* BaseURL = @"https://abc.xyz.com:12345/"; 

@implementation HttpConnection 

+ (HttpConnection*) current { 
    static HttpConnection* current = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     current = [[self alloc] initWithBaseURL: [NSURL URLWithString: BaseURL]]; 
     current.securityPolicy.allowInvalidCertificates = YES; 
     current.responseSerializer = [AFJSONResponseSerializer serializer]; 
     current.requestSerializer = [AFJSONRequestSerializer serializer]; 
    }); 
    [current.requestSerializer setAuthorizationHeaderFieldWithUsername: Username password: Password]; 
    return current; 
} 

ben Alamofire ile kullanmak için bu deseni çevirmek nasıl merak ediyorum. Aşağıdaki gibi bir şey mi? Alamofire kodunda Peeking

static let BaseURL = "https://abc.xyz.com:12345/" 
static var User = "" 
static var Password = "" 

func myAppRequest((method: Method, URLString: URLStringConvertible, parameters: [String: AnyObject]? = nil, encoding: ParameterEncoding = .URL) -> Request { 
    let request = Alamofire.request(method, BaseURL + URLString, parameters, encoding) 
    request.authenticate(user: User, password: "Password) 
    return request 
} 

, ben uygun zamanlarda Alamofire.Manager.sharedInstance manipüle etmek mümkün olabileceğini Bir tahminim var (app açılışta baseURL ve Kullanıcı/Şifre olduğunca söz konusu değişiklik). Ama bu, bunun nasıl gerçekleştiğine dair daha az belirgin (eğer gerçekten mümkün ise).

+1

Bir oylama yapıldığında keşke en azından nedenini söylediniz. –

cevap

0

Tüm istekleri işlemek için Alamofire.Manager kullanıyorum. Ben böyle yaparım.

//initialize with all details such as referrer etc 
self.manager = Alamofire.Manager(configuration: cfg) 


let user = "user" 
let password = "password" 
// you may manipulate configuration later on if you want. 
self.manager.session.configuration.HTTPAdditionalHeaders!["Referer"] = self.host 
self.manager.request(.GET, "https://httpbin.org/basic-auth/\(user)/\(password)") 
     .authenticate(user: user, password: password) 
     .responseJSON { (req, res, json, error) in 
      if(error != nil) { 
       NSLog("Error: \(error)") 
       failure(res, json, error) 
       return 
      } 
      else { 
       // do something with JSON 
    } 
} 
+3

mngr sadece ruhumu acıtıyor. Lütfen, lütfen, bir şeyleri isimlendirirken, sözleriniz ve sizin kodunuzu okuyan herkes için, gerçek kelimeleri kullanın. –

+0

Ruhunuza acı çekmek istemiyorum :) Değişkeni yeniden adlandırdım. – Meanteacher

+0

Yani '.authenticate' yapılandırmaya yerleşik almanın bir yolu yok mu? Kendinize ait bir yer var mı? –