AFNetworking 使用 Rails 进行 PUT 和删除

Posted

技术标签:

【中文标题】AFNetworking 使用 Rails 进行 PUT 和删除【英文标题】:AFNetworking PUT and Delete with Rails 【发布时间】:2012-09-16 17:57:16 【问题描述】:

在查看 AFNetworking 文档时,Put 和 Delete 方法采用路径和参数字典。我使用 Rails 作为我的后端,希望这两种类型采用 Put /object/1.json 和 Delete /object/1.json 的形式。我应该通过添加 Id 来构建路径字符串,还是发送带有 Id 作为 Dictionary 中的参数之一的 Put 或 Delete?

【问题讨论】:

我也有类似的情况。我有 PUT 和 GET 请求工作,但对如何使用 AFNetworking 为 DELETE 请求创建路径感到困惑。我正在和一个 postgresql 数据库交谈,如果那有什么好处的话。 我也在使用 Postgres。我尝试传入一个参数字典,但这没有用。在代码中,如果我手动设置删除的完整路径,例如 [[APIManager sharedManager] deletePath:@"/v1/object/3.json" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) 那么它可以工作如我的原件中所述。认为我只需要将一个字符串连接在一起。 我也尝试了参数字典,但无济于事。我会试试的。这是有道理的,我希望后续文档能更详细地介绍路径参数。 【参考方案1】:

通常当我使用PUT 和使用AFNetworking 时类似类型的HTTP 请求是这样的:

// Create an HTTP client with your site's base url
AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://example.com"]];

// Setup the other parameters you need to pass
NSDictionary *parameters = @@"username" : @"bob", @"password" : @"123456";

// Create a NSURLRequest using the HTTP client and the path with your parameters
NSURLRequest *request = [client requestWithMethod:@"PUT" path:@"object/1.json" parameters:parameters];

// Create an operation to receive any response from the server
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) 
    // Do stuff
 failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) 
    // Handle error
];

// Begin the operation
[operation start];

如果您查看AFHTTPClient.h,这里有一些示例说明如何格式化您的基本 url 和路径。在AFNetworking documentation 中有更多关于这些方法的信息

【讨论】:

嗨,基思。在您的“object/1.json”示例中,我想知道如何处理它是“1”。因为这通常是指我正在使用的动态对象的 id,所以我无法对其进行硬编码。 好吧,如果您要添加一个新项目,您只需执行路径 object (很可能)否则您必须在下载对象时在某处获得该对象的值,以便您可以输入它当您准备删除它时,将值添加到路径中。例如,如果您下载了对象,则它们应该具有您最初会得到的某种唯一标识符。

以上是关于AFNetworking 使用 Rails 进行 PUT 和删除的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法先加载文本字符串,然后使用 AFNetworking 加载图像?

在 AFNetworking 2 的失败块中访问 JSON 响应

这个 AFNetworking JSON 帖子我做错了啥?

使用 AFNetworking(AFHTTPClient 子类)将 JSON 发送到服务器 => 这是一个异步操作

如何使用 AFNetworking 进行 json 解析

AFNetworking 2 使用 AFHTTPRequestOperation 进行身份验证