Tôi là người mới đối với mục tiêu-c và tôi đang bắt đầu nỗ lực rất nhiều vào yêu cầu / phản hồi kể từ gần đây. Tôi có một ví dụ hoạt động có thể gọi một url (thông qua http GET) và phân tích cú pháp json được trả về.
Dưới đây là ví dụ làm việc
- (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];
}
Câu hỏi đầu tiên của tôi là - liệu cách tiếp cận này có mở rộng quy mô không? Hoặc đây không phải là không đồng bộ (nghĩa là tôi chặn chuỗi giao diện người dùng trong khi ứng dụng đang chờ phản hồi)
Câu hỏi thứ hai của tôi là - làm thế nào tôi có thể sửa đổi phần yêu cầu của điều này để thực hiện ĐĂNG thay vì GET? Nó chỉ đơn giản là để sửa đổi HttpMethod như vậy?
[request setHTTPMethod:@"POST"];
Và cuối cùng - làm cách nào để thêm một tập hợp dữ liệu json vào bài đăng này dưới dạng một chuỗi đơn giản (ví dụ)
{
"magic":{
"real":true
},
"options":{
"happy":true,
"joy":true,
"joy2":true
},
"key":"123"
}
Cảm ơn bạn trước