Pergunta

Estou usando o pacote ASIHTTPREQUEST para enviar alguns dados do iPhone para o meu servidor e, quando salvos no servidor, recebo uma resposta (uma string) contendo um URL que desejo carregar em um WebView. Em teoria, isso deve ser simples, mas na realidade não consigo fazer esse trabalho. Parece ser alguns problemas com a codificação da corda, eu acho. Se eu não usar a resposta, parece totalmente bom, mas apenas se recusa a carregar na WebView.

Este é o meu pedido (tocando com compactação e codificação):

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 este é o meu respondedor:

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

O NSLog parece bom, mas o site simplesmente não carrega. Tentei enviar uma variável NSString como nsstring *temp = @"http://www.google.se"; para a função de carga e isso funciona bem, então o problema não está com o próprio carregamento.

Apcultaria muito quaisquer indicadores ou ajudaria na selva OBJ-C :)

/f

Foi útil?

Solução

Tente fazer o seguinte:

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

Ele aparará todos os espaços em branco e novas linhas.

Outras dicas

Acontece que uma resposta é automaticamente encerrada com um n (new linebreak). Isso não apareceu ao registrar a variável, nem quando a escreve em um campo de texto, mas ao convertê -la em um objeto e registro que eu o encontrei. Debugando mais uma vez compensa;)

woups, my responder is of course:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top