0

我对 iOS 很陌生,我刚刚开始阅读有关 HTTP 请求以及 POST 和 GET 方法的内容。假设,例如,我想让用户输入一个字符串,然后将该数据发送到一个网站(例如 www.rhymezone.com),使用该字符串进行搜索,并获取该搜索的结果在我的应用程序中。这是通过 HTTP post 方法完成的吗?要不然是啥?任何帮助/示例将不胜感激。另外,如果有这些东西的教程,那也将不胜感激。

例如,这是我尝试过的:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.rhymezone.com/r/rhyme.cgi?Word=test&typeofrhyme=perfect&org1=syl&org2=l&org3=y"]];

NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];



- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSString *dataAsString=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"data: %@",dataAsString);
 }

这会输出网站的整个来源(搜索单词 test 的押韵)。虽然我当然可以编写一个方法来遍历网站的源代码并提取它返回的单词,但我觉得这是不正确的。我获取不同单词押韵的方法只是在这里更改 URL,因此在显示“测试”的地方,我将其更改为用户输入的任何内容。

谢谢

4

3 回答 3

1

如果我正确理解您要做什么,我担心您的唯一选择是发送 HTTP 请求(根据网站的预期获取或 POST,就像您正在做的那样),然后解析结果以过滤所有不相关的信息。

如果您使用的是提供 REST API 或 JSON API 的网站,则可以使用另一种方法,以便您发送查询并仅返回所需的信息(以特定格式)。

因此,这在很大程度上取决于您使用的网站,但对于一般情况,您唯一的选择是解析。

(或者,您可以通过 显示页面的全部内容UIWebView。这不需要显式设置连接,但我不确定您是否正在尝试这样做。)

于 2012-12-25T20:22:57.323 回答
1

您正在寻找一种从您的 iOS 应用程序与您的网站进行通信的方法。常见的方法是获取用户输入的字符串,对其进行编码并将其作为 http 请求发送到某种脚本(webservice)。这个脚本会做你想做的所有事情(用这个字符串搜索)。然后将结果作为 http 响应重新发送到客户端(您的 iOS 应用程序),该响应将在您的 iOS 应用程序中进行解析(例如使用 JSON 解析器)。

有很好的资源,例如,您可以阅读以下内容:http ://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service

于 2012-12-25T20:29:28.483 回答
1

查看 AFNetworking 和 RestKit。

如果您调用使用 JSON/XML 的公共 API,然后使用内置解析器或解析器库来提取您想要的数据,这是最简单的。

简单地下载 URL 的内容就是一个 HTTP GET 请求,例如访问一个网站。

此链接更多地讨论了 GET 和 POST 之间的区别。 什么时候使用 POST,什么时候使用 GET?

于 2012-12-25T22:37:37.873 回答