Objective-C équivalent de demande curl

Je suis en train de manipuler cette demande curl en Objective-C:

curl -u username:password "http://www.example.com/myapi/getdata"

J'ai mis en place la suite et je suis de données d'erreur Domain=kCFErrorDomainCFNetwork Code=303 avec NSErrorFailingURLKey=http://www.example.com/myapi/getdata:

//Make a call to the API to pull out the categories
NSURL *url = [NSURL URLWithString:@"http://www.example.com/myapi/getdata"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

//Create the username:password string for the request
NSString *loginString = [NSString stringWithFormat:@"%@:%@", API_USERNAME, API_PASSWORD];

//Create the authorisation string from the username password string
NSData *postData = [loginString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

[request setURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSError *error;
NSURLResponse *response;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

J'espérais que quelqu'un pourrait spot où je vais mal avec ma tentative de manipuler la demande curl et me pointer dans la bonne direction. Il est évident que je suis absent? Les données renvoyées par l'API est dans un format JSON.

Veuillez modifier votre demande à la méthode de "POTEAU" [demande setHTTPMethod:@"POST"];
Aussi, vous avez créé le mauvais paramètre demande NSString *loginString = [NSString stringWithFormat:@"%@:%@", API_USERNAME, API_PASSWORD]; il devrait en être ainsi NSString *loginString = [NSString stringWithFormat:@"nom d'utilisateur=%@&mot de passe=%@", API_USERNAME, API_PASSWORD];
J'ai essayé les deux, vos suggestions, mais même erreur malheureusement.
essayez cette NSURLRequest *demande = [NSURLRequest requestWithURL:[NSURL URLWithString:@"username:[email protected]"]]; [NSURLConnection sendSynchronousRequest:demande returningResponse:NULL error:NULL]; et aussi supprimé les HTTPBody Mthod
curieusement, j'ai essayé juste avant votre commentaire et cela a fonctionné avec succès. Vous savez ce qu'ils disent. Vous attendez les âges de un et ensuite ils viennent tous ensemble! Coller dans une réponse et je vais le prix pour vous.

OriginalL'auteur ThePower | 2012-07-12