从cocoa http get请求中提取数据

时间:2009-04-01 18:00:41

标签: cocoa-touch http nsurlrequest

我实现了以下代码:

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

我想从我从上面的网址收到的内容中提取身体。我试过了:

NSData *data = [request HTTPBody];

data 变量不会返回任何数据?我是否正在以正确的方式从请求中提取数据?

谢谢!

3 个答案:

答案 0 :(得分:6)

如果您只想尝试获取网页,可以使用此功能。

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

如果您真的想从NSData转换数据,可以使用:

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

答案 1 :(得分:3)

NSURLRequest只定义一个请求 - 它本身不做任何事情。要实际发出请求,您需要将请求发送给NSURLConnection

此外,如documentation所示,HTTPBody是随请求一起发送的数据,而不是响应正文。

答案 2 :(得分:1)

www.eigo.co.uk上有一篇文章,其中详细说明了如何处理请求并在字符串变量中获取响应,但您需要的代码块是......

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

查看此处的文章http://www.eigo.co.uk/iPhone-Submitting-HTTP-Requests.aspx

相关问题