0

如果我想在用户将用户名和密码放在 UITextField 中并使用 AFNetworking 登录的应用程序中登录 Instapaper ( http://www.instapaper.com/user/login ),我将如何完成此操作?

和这个方法有关吗?http://afnetworking.github.com/AFNetworking/Classes/AFHTTPClient.html#//api/name/postPath:parameters:success:failure

基本上我想获取凭据,登录到 Instapaper,然后与加载的网站进行交互。

如果是上述方法,我是否将 NSDictionary 用于“用户名”->“”和“密码”->“”之类的参数?响应是登录后显示的页面的 HTML(我在寻找什么)?

我是网络新手,所以我有点困惑如何使用 AFNetworking 来实现这一点。

4

1 回答 1

4

使用AFHTTPRequestOperation变体AFHTTPClient,如果您将用户名和密码作为参数发送,则将它们添加到 NSDictionary 中,如下所示并将它们作为参数发送,否则如果您想在正文中发送它们,您可以将它们作为 formData 发送。

NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
 [parameters setObject:username.text forKey:@"username"];
 [parameters setObject:password.text forKey:@"password"];   

AFHTTPClient  *afHttpClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://yourbaseURL"]];

NSMutableURLRequest *request = [afHttpClient multipartFormRequestWithMethod:@"POST" path:@"/pathifAny" parameters:parameters constructingBodyWithBlock:^(id <AFMultipartFormData>formData)
                                        {
                                        // here you can send as body if you not setting as parameters
                                        [formData appendPartWithFormData:[username.text dataUsingEncoding:NSUTF8StringEncoding] name:@"username"];
                                        [formData appendPartWithFormData:[password.text dataUsingEncoding:NSUTF8StringEncoding] name:@"password"];

                                        }];



AFHTTPRequestOperation  *afHttpReqOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

这是关于 GET/POST 的简单教程

于 2013-03-27T14:35:58.863 回答