在 iOS 上从 ASIHTTPRequest 转换为 AFNetworking

Posted

技术标签:

【中文标题】在 iOS 上从 ASIHTTPRequest 转换为 AFNetworking【英文标题】:Translating from ASIHTTPRequest to AFNetworking , on iOS 【发布时间】:2012-07-02 13:50:45 【问题描述】:

我想要做的是将一个 json 文件发布到我的服务器。我终于使用 ASIHTTPRequest 做到了,我的代码是:

NSURL *url = [NSURL URLWithString:@"http://foo.foo.foo"];
            ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
            [request setRequestMethod:@"PUT"];

            [request addRequestHeader:@"Authorization" value:@"Basic dslfkdsfdsflsdkfslkgflksflksdlfkg"]; 
            [request addRequestHeader:@"Content-Type" value:@"application/json; charset=utf-8"];


            [request appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]; 
            [request startSynchronous];

            NSLog(@"%@", [request responseString]);   

我现在需要的是上面翻译成 AFNetworking 的确切代码。有任何想法吗?? 感谢您阅读我的帖子:)

【问题讨论】:

【参考方案1】:
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://foo.foo.foo"]];
client.parameterEncoding = AFJSONParameterEncoding;
[client registerHTTPOperationClass:[AFJSONRequestionOperation class]];
[client setAuthorizationHeaderWithUsername:... password:...];
[client putPath:@"/path/to/resource" parameters:(_your JSON object as a dictionary_) 
            success:^(AFHTTPRequestOperation *operation, id responseObject) 
              NSLog(@"%@", [request responseString]);
           failure:^(AFHTTPRequestOperation *operation, NSError *error) 
              NSLog(@"Error: %@", error);
          ];

【讨论】:

以上是关于在 iOS 上从 ASIHTTPRequest 转换为 AFNetworking的主要内容,如果未能解决你的问题,请参考以下文章

ASIHTTPRequest 在 iOS 3.1.3 上崩溃

IOS开发 REST请求 ASIHTTPRequest用法

适用于iOS的RestKit或ASIHTTPRequest的替代品

我应该如何处理 iOS 中的 ASIHTTPRequest 异步调用?

iOS进阶课程-ASIHTTPRequest框架-关东升-专题视频课程

如何在ios中使用ASIHTTPRequest向服务器发送和检索用户名和密码以及图像