соединение didReceiveData названный дважды при регистрации URL в iPhone?

Я плохо знаком с разработкой iPhone. Я отправил URL с именем пользователя и паролем. Я могу распечатать данные в "соединении didReceiveData" метод. Но я вижу "соединение didReceiveData" метод, названный дважды. Я не знаю, где я иду не так, как надо. Вот мой код

 - (void)viewDidLoad {
[super viewDidLoad];

NSString *post = [NSString stringWithFormat:@"&domain=school.edu&userType=2&referrer=http://apps.school.edu/navigator/index.jsp&username=%@&password=%@",@"xxxxxxx",@"xxxxxx"];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://secure.school.edu/login/process.do"]]];

[request setHTTPMethod:@"POST"];

[request setValue:postLength forHTTPHeaderField:@"Content-Length"];

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];

[request setHTTPBody:postData];

NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

if(conn)
{
    NSLog(@"Connection Successful");

}
else
{
    NSLog(@"Connection could not be made");
}

    }

 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data{

NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"the  data %@",string);
  }

Целая страница HTML печатается дважды в консоли. Поэтому выручите меня. Спасибо.

11
задан Warrior 15 March 2010 в 09:32
поделиться

1 ответ

Вы можете получать данные ответа по частям, поэтому документация NSURLConnection утверждает:

« Делегат должен объединить содержимое каждого доставленного объекта данных, чтобы собрать полные данные для загрузка URL . "

Используйте для этого экземпляр NSMutableData и обрабатывайте полные данные только после получения сообщения -connectionDidFinishLoading: .

14
ответ дан 3 December 2019 в 04:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: