Ich bin neu in Objective-C und fange seit kurzem an, große Anstrengungen in die Anfrage / Antwort zu investieren. Ich habe ein funktionierendes Beispiel, das eine URL (über http GET) aufrufen und den zurückgegebenen JSON analysieren kann.
Das Arbeitsbeispiel hierfür ist unten
- (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];
}
Meine erste Frage lautet: Wird sich dieser Ansatz vergrößern? Oder ist dies nicht asynchron (was bedeutet, dass ich den UI-Thread blockiere, während die App auf die Antwort wartet)?
Meine zweite Frage lautet: Wie kann ich den Anforderungsteil ändern, um einen POST anstelle von GET durchzuführen? Ist es einfach, die HttpMethod so zu ändern?
[request setHTTPMethod:@"POST"];
Und schließlich - wie füge ich diesem Beitrag eine Reihe von JSON-Daten als einfache Zeichenfolge hinzu (zum Beispiel)?
{
"magic":{
"real":true
},
"options":{
"happy":true,
"joy":true,
"joy2":true
},
"key":"123"
}
Danke im Voraus