I am trying to login to a REST API with the following code:
NSError *serializationError = nil;
NSString* myString = @"{\"username\": \"xxx\",\"password\": \"xxx\",\"client_id\": \"Example\",\"grant_type\": \"password\",\"refresh_token\": \"string\"}";
NSData* myData = [myString dataUsingEncoding:NSUTF8StringEncoding];
NSData* params = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:nil];
NSError *writeError = nil;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:&writeError];
NSString* jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"xxxxxxxxxxxxxxxxx"] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:120];
[request setHTTPMethod:@"POST"];
[request setValue: @"application/json; encoding=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setValue: @"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPBody: [jsonString dataUsingEncoding:NSUTF8StringEncoding]];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[manager dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
NSLog(@"Reply JSON: %@", responseObject);
if ([responseObject isKindOfClass:[NSDictionary class]]) {
//blah blah
}
} else {
NSLog(@"Error: %@", error);
NSLog(@"Response: %@",response);
NSLog(@"Response Object: %@",responseObject);
}
}] resume];
But I am receiving an
Error: Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo={NSLocalizedDescription=Request failed: unacceptable content-type: text/html, NSErrorFailingURLKey=https:/xxxxxxxxxxxxx, com.alamofire.serialization.response.error.data=xxxxxxxxxxx, com.alamofire.serialization.response.error.response={ URL: https://xxxxxxxxxx } { Status Code: 200, Headers { "Content-Encoding" = ( gzip ); "Content-Type" = ( "text/html; charset=utf-8" ); Date = ( "Thu, 08 Mar 2018 10:34:31 GMT" ); Server = ( Kestrel ); "Transfer-Encoding" = ( Identity ); Vary = ( "Accept-Encoding" ); "X-Powered-By" = ( "ASP.NET" ); } }}
What is wrong?
Thanks.