ios - POST 和 PUT 请求 AFNetworking

标签 ios rest post put afnetworking

我正在尝试调用服务器。 GET 调用运行良好并返回正确的 json,但是当我尝试执行 PUT 或 POST 时,服务器返回错误。

我将服务器设置为接收下一条消息:

method POST
curl -X POST -d "number=NUMBER&name=NAME&lat=32.5713&lon=60.3926"  http://server.com/users/

method PUT
curl -X PUT -d "number=USER&name=NAME6&lat=-34.5552&lon=32.3333"  http://server.com/users/

这两种方法如何调用服务器?

最佳答案

我会为所有请求创建一个 APIClient 类,而不是每次发出请求时都创建一个新客户端。

参见:https://github.com/AFNetworking/AFNetworking/tree/master/Example/Classes AFTwitterAPIClient.h & AFTwitterAPIClient.m

但是基于你的问题。 我相信代码看起来像这样。 (代码未测试)

NSURL *url = [NSURL URLWithString:@"http://server.com"];
AFHTTPClient *client = [[AFHTTPClient alloc]initWithBaseURL:url];

//depending on what kind of response you expect.. change it if you expect XML 
[client registerHTTPOperationClass:[AFJSONRequestOperation class]];

NSDictionary *params = [[NSDictionary alloc]initWithObjectsAndKeys:
                        @"NUMBER",@"number", 
                        @"NAME",@"name",
                         @"32.5713",@"lat",
                         @"60.3926",@"lon", 
                        nil];
[client putPath:@"users" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"success");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"failure");
}];

至于发布请求.. 只需使用 postPath 而不是 putPath 就可以了。 :)

希望我帮到了你。

关于ios - POST 和 PUT 请求 AFNetworking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10974241/

相关文章:

ios - 通过 Redland-ObjC 在 iOS 上使用 Sqlite3 作为 Redland RDF 存储

android - 添加深层链接到短信

ios - 使用解密时,表达式类型不明确,没有更多 AES 上下文

java - Tomcat 是否支持开箱即用的 JAX-RS(它是否支持 JAX-RS)?

REST:防止通过条件 POST 创建重复资源?

rest - 使用 Flutter 将图像发布到 Web 服务

c# - 如何以编程方式登录雅虎网站

c# - 如何从 NSNumber 转换为 .NET 对象

java - 在 Eclipse 中的 Tomcat 7 上运行 Jersey Web 应用程序时出现 404 错误

java - 获取端点的指标