Je suis nouveau sur objective-c et je commence à mettre beaucoup d'effort dans la demande/réponse de ces dernières. J'ai un exemple de travail que l'on peut appeler une url (via http GET) et parser le json retourné.
L'exemple de ce qui est ci-dessous
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[responseData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog([NSString stringWithFormat:@"Connection failed: %@", [error description]]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
//do something with the json that comes back ... (the fun part)
}
- (void)viewDidLoad
{
[self searchForStuff:@"iPhone"];
}
-(void)searchForStuff:(NSString *)text
{
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.whatever.com/json"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
Ma première question est - ce l'approche de l'échelle? Ou n'est-ce pas async (sens-je bloquer le thread de l'INTERFACE utilisateur, tandis que l'application est en attente de la réponse)
Ma deuxième question est - comment pourrais-je modifier la demande de la partie de ce faire un POST au lieu de GET? Est-il tout simplement de modifier la HttpMethod comme?
[request setHTTPMethod:@"POST"];
Et enfin - comment puis-je ajouter un jeu de données json à ce post comme une simple chaîne de caractères (par exemple)
{
"magic":{
"real":true
},
"options":{
"happy":true,
"joy":true,
"joy2":true
},
"key":"123"
}
Je vous remercie à l'avance