2016-07-28 79 views
0

嗨,我正在使用AFNetworking 3.x.我建立了一個網絡api的單身人士設置AFNetworking 3.x單例請求和響應序列化

+ (ApiClient *)sharedInstance { 
    static ApiClient *sharedInstance = nil; 
    static dispatch_once_t oncePredicate; 
    dispatch_once(&oncePredicate, ^{ 
     NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
     sharedInstance = [[self alloc] initWithBaseURL:[NSURL URLWithString:SINGPOST_BASE_URL] sessionConfiguration:sessionConfiguration]; 

    return sharedInstance; 
} 

- (id)initWithBaseURL:(NSURL *)url 
{ 
    if ((self = [super initWithBaseURL:url])) { 
     AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer]; 
     [serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
     [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
    } 

    return self; 
} 

我想在使用單身時設置請求和響應序列化。我們怎麼能這樣做

我寫這些代碼不斷收到錯誤。任何幫助非常感謝。由於

[[[ApiClient sharedInstance]requestSerializer = [AFHTTPRequestSerializer] requestWithMethod:POST_METHOD URLString:urlString parameters:xml error:nil]]; 

我的反應系列化

ApiClient sharedInstance].responseSerializer.acceptableContentTypes = [[ApiClient sharedInstance].responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 

enter image description here

+0

什麼錯誤? –

+0

嗨更新與錯誤的問題。什麼是設置請求和響應序列化的正確方法? –

+0

Hi ApiClient已經從AFHTTPSessionManager繼承 –

回答

1

您需要更改呼叫[AFHTTPRequestSerializer requestWithMethod..]

[[AFHTTPRequestSerializer serializer] requestWithMethod:POST_METHOD URLString:urlString parameters:xml error:nil]; 

AFHTTPRequestSerializer沒有一個類的方法requestWithMethod它首先需要的創建ai nstance和呼叫後requestWithMethod

你的代碼如下:

[[ApiClient sharedInstance] requestSerializer] = [[AFHTTPRequestSerializer serializer] requestWithMethod:POST_METHOD URLString:urlString parameters:xml error:nil]; 
+0

非常感謝。但它是否適用於單身ApiClient? –

+0

是的,看看我的回答,我更新了它 – iSashok

+0

謝謝,所以我會將請求序列化更改爲[[AFHTTPRequestSerializer序列化程序] requestWithMethod:POST_METHOD URLString:urlString參數:xml錯誤:無]?響應序列化如何正確? –