Я начинаю изучать дескриптор сети Objective C. Я хотел бы разработать приложение, которое использует Robinhood API. Я нашел API на Github по поводу входа в систему. https://github.com/sanko/Robinhood/blob/master/Authentication.md#logging-in
curl -v https://api.robinhood.com/api-token-auth/ \
-H "Accept: application/json" \
-d "username={username}&password={password}"
Это запрос POST, и я написал свой код так:
NSString *credianls = [NSString stringWithFormat:@"username=%@&password=%@",self.usernameField.text, self.passwordField.text];
NSData* data = [credianls dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:@"https://api.robinhood.com/api-token-auth/"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPBody:data];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d",[data length]] forHTTPHeaderField:@"Content-length"];
__block NSMutableDictionary *resultsDictionary;
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse* response,NSData* data,NSError* error)
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"response status code: %ld", (long)[httpResponse statusCode]);
if ([data length]>0 && error == nil) {
resultsDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
NSLog(@"resultsDictionary is %@",resultsDictionary);
} else if ([data length]==0 && error ==nil) {
NSLog(@" download data is null");
} else if( error!=nil) {
NSLog(@" error is %@",error);
}
}];
Понятия не имею, почему это не работает. Я всегда получаю код статуса 404.
Может ли кто-нибудь дать мне несколько советов по этому поводу, пожалуйста?
Большое спасибо!