Domanda

Sto usando il pacchetto ASIHTTPRequest per inviare alcuni dati dall'iPhone al mio server e poi, quando salvato sul server, ricevo una risposta (una stringa) contenente un URL che voglio caricare in una webview. In teoria questo dovrebbe essere semplice, ma in realtà non riesco affatto a ottenere questo lavoro. Sembra essere qualche problema con la codifica della stringa immagino. Se NSLog esce la risposta, sembra che vada benissimo, ma si rifiuta di caricarlo nella visualizzazione Web.

Questa è la mia richiesta (ho giocato con la compressione e la codifica):

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];

E questo è il mio risponditore:

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

Il NSLog sembra a posto, ma il sito non si carica. Ho provato a inviare una variabile NSString come NSString * temp = @ " http://www.google.se " ; alla funzione loadSite e che funziona bene, quindi il problema non riguarda il caricamento stesso.

Apprezzerebbe molto qualsiasi suggerimento o aiuto nella giungla obj-c :)

/ f

È stato utile?

Soluzione

Prova a fare quanto segue:

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

Taglia tutti gli spazi bianchi e le nuove righe.

Altri suggerimenti

quindi risulta che una risposta termina automaticamente con un \ n (nuova interruzione di riga). questo non è stato visualizzato quando si registrava la variabile, né durante la scrittura in un campo di testo, ma durante la conversione in un urlobject e la registrazione che l'ho trovata. il debug ripaga di nuovo;)

woups, il mio risponditore è ovviamente:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top