Pregunta

Estoy usando el paquete ASIHTTPRequest para enviar algunos datos del iPhone a mi servidor y luego, cuando estoy guardado en el servidor, recibo una respuesta (una cadena) que contiene una URL que deseo cargar en una vista web. En teoría, esto debería ser simple, pero en realidad no puedo conseguir este trabajo en absoluto. Parece que hay algunos problemas con la codificación de la cadena, supongo. Si no registro la respuesta, parece estar totalmente bien, pero simplemente se niega a cargar en la vista web.

Esta es mi solicitud (he estado jugando con compresión y codificación):

NSURL *url = [NSURL URLWithString:@"xxx"];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setFile:imageData forKey:@"photo"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request setAllowCompressedResponse:NO];
[request setDefaultResponseEncoding:NSUTF8StringEncoding];//NSISOLatin1StringEncoding   
[request start];

Y este es mi respondedor:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request.responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}

El NSLog parece estar bien, pero el sitio simplemente no se carga. Intenté enviar una variable NSString como NSString * temp = @ " http://www.google.se " ; a la función loadSite y que funciona bien, por lo que el problema no está en la carga en sí misma.

Apreciaría enormemente cualquier puntero o ayuda en la jungla obj-c :)

/ f

¿Fue útil?

Solución

Intenta hacer lo siguiente:

NSString *response = [[request responseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

Recortará todos los espacios en blanco y las nuevas líneas.

Otros consejos

por lo que resulta que una respuesta se termina automáticamente con un \ n (nuevo salto de línea). esto no se mostró cuando se registra la variable, ni cuando se escribe en un campo de texto, sino cuando se convierte en un objeto u registro y se registra lo que encontré. depurar una vez más da sus frutos;)

woups, mi respuesta es, por supuesto:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top