я следовал на эти вопросы и учебные пособия:Почему мой метод делегата никогда не вызван?
- fetching data with get post methods
- sending http get and post from cocoa
- nsurlconnection basics for beginners
- sending an http post request on ios
- how to hanlde multiple delegates
Но я до сих пор что-то отсутствует. Мой делегат метод
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
вызывается все время, занимает немного времени немного, и я предполагаю, что это из-за скорости интернета, но метод
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
никогда не вызывается. Что мне не хватает? Пожалуйста, помогите мне.
Мой код:
-(void)loadDataBase{
NSString *post = [NSString stringWithFormat:@"advnr=123"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://thewebsite.abc/interface.php"]]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
//return @"";
}
#pragma mark -
#pragma mark NSURLConnection delegates
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data {
NSLog(@"Success"); // never gets executed
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"didFinished");
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"FAILED");
}
Этот метод делегата вызывать только тогда, когда возвращение вебсервис данных, вы уверены, что you'r отправлять запрос возвращает другие данные чем 200 HTTP-заголовков? –
Да, когда я тестирую его с помощью своей тестовой формы html, я всегда получаю данные, которые мне нужны на экране. –