如果您使用 HTTP,如前所述,生活会容易得多。当您已经拥有像 HTTP 一样广泛和广泛使用的协议时,重新发明轮子是没有用的。
AFNetworking是一个很好的与 Web 服务器通信的库,并且内置了对 JSON 进行编码/解码的能力。
使用 AFNetworking 使用 HTTP、JSON 和 REST API 进行通信的示例。
NSMutableURLRequest *jsonRequest = [httpClient requestWithMethod:@"POST"
path:@"user/login"
parameters:[[NSDictionary alloc] initWithObjectsAndKeys:user, @"username", password, @"password", nil]];
//Make operation from request
AFJSONRequestOperation *jsonOperation =
[AFJSONRequestOperation JSONRequestOperationWithRequest:jsonRequest
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
//Block will be called when request is successful
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
//Block will be called if request has failed
}];
//Start request
[httpClient enqueueHTTPRequestOperation:jsonOperation];
很容易使用,我认为它比 NSURLConnection 更容易。块的使用使其更具主动性。另外,您不必担心 JSON 编码/解码。JSON 将直接为您从 Objective-c 对象编码/解码为 JSON(或从 JSON 到 Objective-c 对象)。