在目标C中借助AFNetworking调用Web服务

我正在使用NSURLConnection方法来调用Web服务我想要的是用第三方库replace它AFNetworking我应该如何实现这个我打电话给Web服务与数据第一次这里是我目前正在做的。

- (void)viewDidLoad { [super viewDidLoad]; NSURL * linkUrl = [NSURL URLWithString:@URLBase]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:linkUrl]; NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[str length]]; [theRequest addValue: @"text/plain; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPMethod:@"POST"]; [theRequest setHTTPBody: [str dataUsingEncoding:NSUTF8StringEncoding]]; NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; if( theConnection ) { webData = [[NSMutableData alloc] init]; } else { NSLog(@"theConnection is NULL"); } } #pragma mark -- Connection Delegate -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { //NSLog(@"%@",response); //[webData setLength: 0]; } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [webData appendData:data]; } -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"\nERROR with theConenction"); } -(void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *responseDataString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding]; NSLog(@"Converted NSData %@ ",responseDataString); } 

这里

 [theRequest setHTTPBody: [str dataUsingEncoding:NSUTF8StringEncoding]]; 

str是我的encryption数据,如用户名和密码。 提前致谢。!

您需要将POST请求发送到您的Web服务。 你可以使用下面的代码片断旧的方式。

 NSString *post = [NSString stringWithFormat:@"%@&value=%@&value=%@&value=%@&value=%@&value=%@",self.Comment_Memberid,self.SharedID,self.Post_Ownerid,self.commentText.text,email_stored,password_stored]; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://.../api/json/postcomment/"]]]; [request setHTTPMethod:@"POST"]; [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[postData length]] forHTTPHeaderField:@"Content-Length"]; [request setValue:@"text/plain; charset=utf-8" forHTTPHeaderField:@"Content-type"]; //[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-type"]; [request setHTTPBody:postData]; //get response NSHTTPURLResponse* urlResponse = nil; NSError *error = [[NSError alloc] init]; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"Response Code: %ld", (long)[urlResponse statusCode]); if ([urlResponse statusCode] == 200) { } 

如果你想使用AFNetworking发送POST请求,你可以使用下面的代码:

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; NSDictionary *params = @{@"34": x, @"130": y}; [manager POST:@"https://../api/json/cordinates" parameters:params progress:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }];