Sono nuovo nello sviluppo di iphone. Ho pubblicato l'URL con il nome utente e la password. Sono in grado di stampare i dati nel metodo "connection didReceiveData". Ma vedo il metodo "connection didReceiveData" chiamato due volte. Non so, dove sto andando male. Ecco il mio codicedideceeceData ha chiamato due volte durante la pubblicazione di un Url in iphone?
- (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);
}
La pagina HTML intera viene stampato due volte nel console.So please help me out.Thanks.
Se si ricevono grandi quantità di dati, si consiglia di guardare NSFileHandler per scrivere i blocchi sul disco man mano che arrivano. Altrimenti NSMutableData dovrebbe andare bene, soprattutto se non si desidera memorizzare comunque i dati. – FelixLam
Buon punto, Felix - specialmente per quanto riguarda la memoria limitata dell'iPhone. –