NSURLConnection委托方法

我很难findNSURLConnection委托方法实现的任何示例。

我想用一个button点击一个HTTPpost发送数据。 不知道如何使“提交”屏幕和“提交”。 (我知道如何使用微调,并将使用它们)

我正在使用此代码根据botton单击操作,但无法使用任何代表的东西。 不知道如何实现他们与我目前的设置。

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"http://myURL.com"]]; [request setHTTPMethod:@"POST"]; NSString *postString = [wait stringByAppendingString:co]; [request setValue:[NSString stringWithFormat:@"%d", [postString length]] forHTTPHeaderField:@"Content-length"]; [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]]; //[[NSURLConnection alloc] initWithRequest:request delegate:self]; [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; [SVProgressHUD dismissWithSuccess:@"Submission Successful"]; 

您需要使用新的NSURLConnectionDataDelegate协议。

我在这里发现了一些例子:

http://blog.kemalkocabiyik.com/index.php/2012/02/fetching-data-with-getpost-methods-by-using-nsurlconnection/

如果你能读葡萄牙语: http : //www.quaddro.com.br/blog/desenvolvimento-ios/baixando-conteudo-com-nsurlconnection-e-nsurlconnectiondatadelegate-no-ios

 - (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse *)response { NSLog(@"Did Receive Response %@", response); responseData = [[NSMutableData alloc]init]; } - (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { //NSLog(@"Did Receive Data %@", data); [responseData appendData:data]; } - (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error { NSLog(@"Did Fail"); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"Did Finish"); // Do something with responseData } 
 //Connection request -(void)requestURL:(NSString *)strURL { // Create the request. NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:strURL]]; // Create url connection and fire request NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; } //Delegate methods - (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse *)response { NSLog(@"Did Receive Response %@", response); responseData = [[NSMutableData alloc]init]; } - (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { //NSLog(@"Did Receive Data %@", data); [responseData appendData:data]; } - (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error { NSLog(@"Did Fail"); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"Did Finish"); // Do something with responseData NSString *strData=[[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]; NSLog(@"Responce:%@",strData); } 

http://codewithchris.com/tutorial-how-to-use-ios-nsurlconnection-by-example/

在此代码中,您将使用GCD,活动指示器,loginbutton上的UIButton Action首先,您将在另一个线程上调用StartActivityindicator,并且它将一直处于移动状态,直到您移除或停止Activityindicator。 那么你将调用Web服务在GCD队列中login。 当您从服务器调用主队列收到响应来更新UI。

 // After the interface declration @interface LoginViewController () { NSData *responseData; dispatch_queue_t myqueue; } //Button Action - (IBAction)Login_Button_Action:(id)sender { [NSThread detachNewThreadSelector: @selector(StartActivityindicator) toTarget:self withObject:nil]; myqueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); dispatch_group_t group=dispatch_group_create(); dispatch_group_async(group, myqueue, ^{ [self loginWebService];}); } -(void)loginWebService { //Combine Both url and parameters NSString *UrlWithParameters = [NSString stringWithFormat:@"http://www.xxxxx.com?count=%@&user=%@&email=%@&password=%@",@"4",@"Username",s@"UserEmail",@"PAssword String"]; //Pass UrlWithParameters to NSURL NSURL *ServiceURL =[NSURL URLWithString:UrlWithParameters]; NSMutableURLRequest *serviceRequest =[NSMutableURLRequest requestWithURL:ServiceURL]; [serviceRequest setHTTPMethod:@"POST"]; [serviceRequest setValue:@"application/json" forHTTPHeaderField:@"accept"]; [serviceRequest setValue:@"application/json" forHTTPHeaderField:@"content-type"]; //GEt Response Here NSError *err; NSURLResponse *response; responseData = [NSURLConnection sendSynchronousRequest:serviceRequest returningResponse:&response error:&err]; NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; NSInteger code = [httpResponse statusCode]; // check status code for response from server and do RND for code if you recive anything than 200 NSLog(@"~~~~~ Status code: %ld",(long)code); if (code ==200) { // your response is here if you call right NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options: NSJSONReadingMutableContainers error: &err]; dispatch_async(dispatch_get_main_queue(),^{ // place the code here to update UI with your received response [NSThread detachNewThreadSelector: @selector(StopActivityindicator) toTarget:self withObject:nil]; }); } } //Activity indicator Method to display - (void) StartActivityindicator { mySpinner.hidden = NO; [mySpinner startAnimating]; } - (void) StopActivityindicator { mySpinner.hidden = YES; [mySpinner stopAnimating]; }