Frage

Ich verwende das ASIHTTPREQUEST -Paket, um einige Daten vom iPhone an meinen Server zu senden. Wenn ich dann auf Server gespeichert bin, erhalte ich eine Antwort (eine Zeichenfolge), die eine URL enthält, die ich in einem Webview laden möchte. Theoretisch sollte dies einfach sein, aber in Wirklichkeit kann ich diese Arbeit überhaupt nicht bekommen. Scheint einige Probleme bei der Codierung der Zeichenfolge zu sein, denke ich. Wenn ich die Antwort herausschließe, scheint es völlig in Ordnung zu sein, aber es weigert sich nur, im WebView zu laden.

Dies ist meine Anfrage (habe mit Komprimierung und Codierung herumgespielt):

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

Und das ist mein Responder:

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

Der NSLog scheint in Ordnung zu sein, aber die Seite wird einfach nicht geladen. Versuchte eine NSString -Variable wie nsstring *temp = @"zu senden."http://www.google.se"; zur Loadsit -Funktion und das funktioniert einwandfrei, so dass das Problem nicht mit dem Laden selbst liegt.

Würde alle Zeiger sehr hüten oder im OBJ-C-Dschungel helfen :)

/f

War es hilfreich?

Lösung

Versuchen Sie, Folgendes zu tun:

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

Es wird alle Whitespaces und Newlines abschneiden.

Andere Tipps

Es stellt sich also heraus, dass eine Antwort automatisch mit einem n (neuer LineBreak) beendet wird. Dies wurde nicht angezeigt, wenn die Variable protokolliert wird, und wenn ich sie in ein Textfeld schreibe, sondern beim Konvertieren in ein Urlobjekt und eine Protokollierung, dass ich es gefunden habe. Das Debugging zahlt sich erneut aus;)

Woups, mein Responder ist natürlich:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top