Pergunta

Eu implementei o seguinte código:

NSURL *url = [ NSURL URLWithString:[ NSString stringWithFormat: @"http://www.google.com/search?q=%@", query ] ];
NSURLRequest *request = [ NSURLRequest requestWithURL: url ];

Eu quero extrair o corpo do que eu receber de volta a partir do URL acima. Tentei:

NSData *data = [request HTTPBody];

dados variável não retorna quaisquer dados? Eu vou sobre como extrair os dados fora do pedido da maneira certa?

Obrigado!

Foi útil?

Solução

Se você está apenas tentando obter uma página web, você pode usar isso.

NSURL *url = [ NSURL URLWithString: [ NSString stringWithFormat: @"http://www.google.com"] ]; 
NSString *test = [NSString stringWithContentsOfURL:url];

Se você realmente deseja converter os dados de NSData você pode usar isto:

NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

Outras dicas

NSURLRequest apenas define um pedido - que não faz nada por si só. Para realmente fazer um pedido, você precisa dar o pedido para um NSURLConnection .

Além disso, como indicado na documentação , o HTTPBody são dados que é enviado com o pedido, não o corpo da resposta.

Há um artigo sobre www.eigo.co.uk que mostra exatamente como fazer o pedido e obter a resposta em uma variável de cadeia, mas o pedaço de código que você precisa é ...

NSString * strResult = [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding];

Confira o artigo aqui http: //www.eigo. co.uk/iPhone-Submitting-HTTP-Requests.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top