2017-10-27 4 views
0

私たちはiOS 8バージョンでのみドメインエラーに直面しており、APIからの応答を得ることはできませんが、同じコードはiOS 10バージョンで正常に動作します。私は以下の必要な情報を添付しました。何か解決があるかどうかチェックしてください。iOS 8ではAPIドメインエラーはiOS 10バージョンではありませんか? (AFNetworking)

AFNetworkingバージョン:3.1.0

ERROR:

" Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unauthorized (401)" UserInfo=0x7fd440dc6e00 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7fd44586cbb0> { URL: http://......../users/login } { status code: 401, headers { 
"Accept-Ranges" = none; 
Connection = "keep-alive"; 
"Content-Length" = 381; 
"Content-Type" = "text/html; charset=iso-8859-1"; 
Date = "Fri, 27 Oct 2017 10:17:40 GMT"; 
"Keep-Alive" = "timeout=5, max=100"; 
"Proxy-Support" = "Session-Based-Authentication"; 
Server = Apache; 
Via = "HTTP/1.1 sophos.http.proxy:3128"; 
"Www-Authenticate" = "Basic realm="Restricted""; 
} }" 

CODE:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager POST:url parameters:parameters 
constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) 
{ 
} progress:^(NSProgress * _Nonnull uploadProgress) { } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) 
{  
NSLog(@"responseObject %@",responseObject); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) 
{ 
NSLog(@"err : %ld",(long)[error code]); NSLog(@"err : %@",[error description]); 
}]; 

API: HTTP(開発)

我々はATSのキーを追加した

、plistの中

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 

解決策があれば教えてください。

ありがとうございます!

答えて

0

利用代わりにあなたのコードのこのコード

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
manager.requestSerializer = [AFHTTPRequestSerializer serializer]; 

[manager POST:strUrl parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) { 
    NSError * error=nil; 

    NSLog(@"Decoded: %@", responseObject); 
    NSMutableDictionary * parsedData = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error]; 

completionHandler:Callback(parsedData,nil); 

    NSLog(@"Decoded: %@", parsedData); 

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
completionHandler:Callback(nil,error); 

}]; 
+0

感謝の作品を願っています!あなたのコードはiOS 8.2では動作しませんでしたが、iOS 10.2では問題なく動作しました。 – Gopik

0

私は、このコードは、IOS 8または10

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]]; 

[manager POST:stUrl parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    if([responseObject isKindOfClass:[NSDictionary class]]) { 
     if(success) { 
      success(responseObject); 
     } 
    } 
    else { 
     NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil]; 
     if(success) { 
      success(response); 
     } 
    } 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
    if(failure) { 
     failure(error); 
    } 
}]; 
+0

申し訳ありませんが、私たちはAFNetworkバージョン3.1.0を使用しています。 AFHTTPRequestOperationManagerはこれ以上ありません。代わりにAFHTTPSessionManagerを使用する必要があります。 – Gopik

関連する問題