I AFNetworking in meinem Projekt verwendet habe, wenn ich Anfrage gesendet, Im Diese Nachricht in Ausfall Block bekommen,AFNetworking Problem mit Antwort: nicht erlaubt (401)
Fehler Domain = com.alamofire.error.serialization. Antwort-Code = -1011 "Die Anforderung ist fehlgeschlagen: nicht erlaubt (401)" Userinfo = {com.alamofire.serialization.response.error.response = com.alamofire.serialization.response.error.data = < 7b227375 63.636.573 73223a66 616c7365 2c226d65 73736167 65223a22 41757468 656e7469 63617469 6f6e2066 61696c65 64227d>, NSLocalizedDescription = Anfrage fehlgeschlagen: nicht autorisiert (401)}
So sende ich Anfrage mit AFNetworking.
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:BASE_URL]];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", nil];
NSString *path = [NSString stringWithFormat:@"/api/##/##/##/sign_in"];
NSString *params = @"{\"user\": {\"uid\": \"10236412002551\",\"access_token\":\"g6tdbvc34seadcx7yufbbcgvf8ijhss\",\"email\": \"[email protected]\",\"latitude\": \"6.927079\", \"longitude\": \"79.861243\",\"remote_avatar_url\": \"\"}}";
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
AFSecurityPolicy* policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
[policy setValidatesDomainName:NO];
[policy setAllowInvalidCertificates:YES];
[manager POST:path parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
if([[responseObject objectForKey:@"error_code"] intValue]==0){
if (success) {
success(userArray);
}
}
} failure:^(NSURLSessionDataTask *task, NSError *error) {
if (failure) {
failure(error);
}
}];
}
Wenn ich aber durch den Einsatz NSURLSession die richtige Antwort erhalten werden können, werden. (Code unten verweisen)
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];
NSURL * url = [NSURL URLWithString:@"http://##/api/##/##/##/sign_in"];
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
NSString * params [email protected]"{\"user\": {\"uid\": \"10236412002551\",\"access_token\":\"g6tdbvc34seadcx7yufbbcgvf8ijhss\",\"email\": \"[email protected]\",\"latitude\": 6.927079, \"longitude\": 79.861243,\"remote_avatar_url\": \"\"}}";
[urlRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Response:%@ %@\n", response, error);
if(error == nil)
{
NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"Data = %@",text);
NSLog(@"Data = %@",json);
}
}];
[dataTask resume];
Ich habe Interesse an AFNetworking verwenden, aber aufgrund dieses Problems gewann ich Ich kann mich nicht vorwärts bewegen. Bitte helfen Sie mir, das Problem mit AFNetworking zu beheben.
Dies ist der Wunsch, ich sollte,
{
"user": {
"uid": "102364120025511",
"access_token": "g6tdbvc34seadcx7yufbbcgaavf8ijh",
"email": "[email protected]",
"latitude": 6.927079,
"longitude": 79.861243,
"remote_avatar_url": ""
}
}
Dies ist die Antwort, die ich bekommen sollte,
{
"success": true,
"message": "Successfully authenticated",
"user": {
"id": 123,
"email": "[email protected]",
"provider": "facebook",
"latitude": 6.927079,
"longitude": 79.861243,
"avatar": {
"url": "",
"thumb": ""
}
}
}
BTW, wenn Sie sich fragen, was diese '7b227375 ...' Daten enthält, das ist eine JSON-Nutzlast, die sagt '{" Erfolg ": false," message ":" Authentifizierung fehlgeschlagen "}'. – Rob