加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – Alamofire相当于AFHTTPSessionManager

发布时间:2020-12-14 04:54:24 所属栏目:百科 来源:网络整理
导读:使用AFNetworking,我遵循了创建AFHTTPSessionManager的特定于应用程序的子类的建议模式.我看起来像这样: static NSString* Username = @"";static NSString* Password = @"";static NSString* BaseURL = @"https://abc.xyz.com:12345/";@implementation Htt
使用AFNetworking,我遵循了创建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;
}

我很好奇我应该如何将这种模式转化为与Alamofire一起使用.它只是如下吗?

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
}

在Alamofire代码中窥视,我有一种预感,即可以在适当的时间操作Alamofire.Manager.sharedInstance(app启动时的baseURL,以及每次更改时的用户/密码).但是那个人如何做到这一点并不那么明显(如果确实可能的话).

解决方法

我正在使用Alamofire.Manager来处理所有请求.我就是这样做的.

//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,error)
                return
            }
            else {
                 // do something with JSON
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读