Vous devriez être en mesure d'utiliser les trucs NSURLRequest pour faire ce que vous voulez.
NSMutableData* _data = nil;
- (IBAction) doIt:(id)sender {
NSURL* url = [NSURL URLWithString: @"http://theurl.com/"];
NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL: url];
NSURLConnection* con = [NSURLConnection connectionWithRequest: req delegate: self];
NSData* body = [@"body of request" dataUsingEncoding: NSUTF8StringEncoding];
_data = [NSMutableData new];
[req setHTTPMethod: @"POST"];
[req setHTTPBody: body];
[con start];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[_data appendData: data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString* result = [[[NSString alloc] initWithData: _data encoding: NSUTF8StringEncoding] autorelease];
// process your result here
NSLog(@"got result: %@", result);
}
Cela n'a pas de contrôle d'erreur dans et doit être stocké dans la variable _data une variable d'instance, mais l'idée générale devrait travailler pour vous. Vous devrez probablement également définir des en-têtes de demande pour indiquer au serveur le codage des données du corps, etc.
Pourquoi cela ne semble-t-il pas possible? C'est juste une API REST après tout. – Kekoa
Au meilleur de ma connaissance, la seule boîte à outils basée sur Cocoa/Cocoa Touch pour accéder à S3 est ConnectionKit. Sinon, vous êtes coincé avec la construction de votre propre, ce qui pourrait devenir une tâche assez complexe. Puis-je demander quels sont les bits de l'API dont vous avez besoin? La version actuelle de ConnectionKit supporte S3 mais est un peu ropey. Nous sommes actuellement en train d'écrire la version 2.0. Si nous avons quelqu'un avec qui travailler spécifiquement pour un protocole, nous pourrions nous concentrer uniquement là-dessus pour notre bénéfice mutuel. S'il vous plaît contactez-moi à http://mikeabdullah.net/other/contact_me.html pour plus de discussion si vous êtes intéressé –
La raison pour laquelle cela ne semble pas possible est que chaque requête authentifiée aux serveurs S3 doit avoir une signature RFC 2104HMAC-SHA1 générée et envoyée avec la demande. À ma connaissance, il n'y a actuellement aucun moyen de le faire sur l'iPhone. Suis-je incorrect ou manque-t-il quelque chose? –