0

我正在开发一个 iPhone 应用程序,它使用 API 从http://www.recipepuppy.com/about/api/查找食谱。

必须将三个参数放入返回结果中。有 i、q 和 p,其中 i 是成分,q 在普通搜索查询中,p 是页面#。我可以专门添加这些参数,然后将结果加载到 Xcode 中的表格视图中。

我还想实现一个搜索,允许用户根据他们的感觉搜索食谱并返回结果。有人可以指出我如何做到这一点的正确方向。我知道我必须接受用户输入的内容并将其放入字符串中,但是如何将该字符串实现到 URL 的参数中?

4

3 回答 3

1

要回答您的问题:

我知道我必须接受用户输入的内容并将其放入字符串中,但是如何将该字符串实现到 URL 的参数中?

您可以使用 NSString 的 stringWithFormat 方法。例如:

NSString *ingredients = @"ingredients";
NSString *query = @"soups";
NSString *page = @"1";

NSString *url = [NSString stringWithFormat:@"http://www.recipepuppy.com/api/?i=%@&q=%@&p=%@",ingredients,query,page];

在使用此 URL 之前,建议您对其进行 URL 编码。

NSString *encodedURL = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

现在您已经有了 URL,只需启动到 Web 的连接(NSURLConnection、AFNetworking,由您选择),解析返回的数据,并将其加载到数组中以显示在表格视图中。

于 2013-02-27T23:07:34.027 回答
1

要构建涉及通过网络进行 JSON 通信的可靠应用程序,您可以使用 JSONModel 库。它为您提供数据模型,并负责向您的 API 服务发送和接收 JSON。

你可以看看 GitHub 页面: https ://github.com/icanzilb/JSONModel/

或者还有关于如何将 YouTube JSON API 与 JSONModel 一起使用的示例: http ://www.touch-code-magazine.com/how-to-make-a-youtube-app-using-mgbox-and-jsonmodel/

在 GitHub 页面上有更多代码示例。祝你好运 :)

(披露:我是 JSONModel 的作者)

于 2013-02-27T23:23:04.023 回答
0

我会为您的所有网络请求使用 AFNetworking: https ://github.com/AFNetworking/AFNetworking

要发出请求,只需构造一个 NSString 并将其发送出去

[NSString stringWithFormat:@"http://www.recipepuppy.com/api/?i=%@&q=%@&p=%d", self.ingredients, self.query, self.page] 
于 2013-02-27T23:12:17.463 回答