我对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,所以在它显示'test‘的地方,我将其更改为用户输入的任何内容。
谢谢
发布于 2012-12-25 22:37:38
查看AFNetworking和RestKit。
最简单的方法是调用使用JSON/XML的公共API,然后使用内置解析器或解析器库来提取所需的数据。
简单地下载URL的内容就是一个HTTP GET请求,比如访问一个网站。
这个链接更多地讨论了GET和POST之间的区别。When do you use POST and when do you use GET?
发布于 2012-12-25 20:22:57
如果我正确理解了您要做的事情,我担心您唯一的选择就是发送HTTP请求(根据网站的预期进行GET或POST,就像您正在做的那样),然后解析结果以过滤所有不相关的信息。
如果您使用一个提供REST API或JSON API的网站,以便您发送查询并返回所需的信息(以特定格式),则另一种方法是可能的。
所以,这在很大程度上取决于你所使用的网站,但对于一般情况,你唯一的选择就是解析。
(或者,您可以通过UIWebView
显示页面的完整内容。这不需要显式地建立连接,但我不确定这是您正在尝试做的事情。)
发布于 2012-12-25 20:29:28
您正在寻找一种从iOS应用程序与您的网站进行通信的方法。通常的方法是获取用户输入的字符串,对其进行编码,然后将其作为http请求发送给某种脚本(webservice)。此脚本将执行您想要的所有操作(使用此字符串进行搜索)。然后将结果作为http响应重新发送到客户端(您的iOS应用程序),该响应将在您的iOS应用程序中解析(例如,使用JSON解析器)。
这里有一些很好的参考资料,例如,您可以阅读以下内容:http://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service
https://stackoverflow.com/questions/14033694
复制相似问题