Question

J'utilise le package ASIHTTPRequest pour envoyer des données de l'iPhone à mon serveur. Une fois enregistré sur le serveur, je reçois une réponse (une chaîne) contenant une URL que je souhaite charger dans une vue Web. En théorie, cela devrait être simple, mais en réalité, je ne peux pas obtenir ce travail du tout. Il semble y avoir des problèmes d’encodage de la chaîne, je suppose. Si je NSLog sur la réponse, il semble être tout à fait correct, mais il refuse simplement de charger dans la vue Web.

C’est ma demande (je me suis amusée avec la compression et l’encodage):

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

Et voici mon interlocuteur:

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

Le NSLog semble bien, mais le site ne se charge tout simplement pas. J'ai essayé d'envoyer une variable NSString telle que NSString * temp = @ & http://www.google.se " ; à la fonction loadSite et cela fonctionne bien, le problème ne vient donc pas du chargement lui-même.

Mettrait grandement en valeur les indicateurs ou l'aide dans la jungle obj-c:)

/ f

Était-ce utile?

La solution

Essayez de procéder comme suit:

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

Il supprimera tous les espaces et les nouvelles lignes.

Autres conseils

s'avère ainsi qu'une réponse est automatiquement terminée avec un \ n (nouveau saut de ligne). cela ne s'est pas montré lors de la consignation de la variable, ni lors de l'écriture dans un champ de texte, mais lors de la conversion en un urlobject et la consignation de ce que je l'ai trouvée. le débogage rapporte une fois de plus;)

woups, mon interlocuteur est bien sûr:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top