繁体   English   中英

AFNetworking对用户名和密码参数的异步POST请求(Objective-C iOS)

[英]AFNetworking asynchronous POST request for username and password parameter (Objective-C iOS)

我是iOS开发的新手,我陷在一个小项目中,在该项目中,我必须创建对php网站的异步POST请求。 我在线阅读资源,发现AFNetworking最好完成这项工作,因此我通过终端使用cocoapods安装了AFNetworking 2.4。 我有一个具有2个文本字段(用户名和密码)的视图控制器,每当我按下登录按钮时,我都会向php网站发送一个异步POST请求.POST请求必须包含参数'username'和'password'并将收到一个JSON响应以“代码”和“消息”返回。 我必须在UIAlert中显示已解析的代码和消息,以及api调用花费的时间(以毫秒为单位)。 唯一有效的登录名是用户名:Yomaki password:asdfgh。 登录成功后,在UIAlert上点击“确定”将使我们回到MainMenuViewController。 请在下面查看我尝试过的代码。 我尝试了在线以下几个教程,但是没有用。

请看下面的代码,

(IBAction)loginButton:(id)sender

{

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"Yomaki": _usernameTextField, @"asdfgh": _passwordTextField};

    NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"PHP URL HERE"]];
    AFHTTPRequestOperation * operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

}

请帮助我提供代码,因为这是我第一次向php网站发送异步POST请求。

提前致谢。

您不想使用_usernameTextFieldUITextField ),而是使用_usernameTextField.text或更好的是self.usernameTextField.text (该测试字段的NSString属性)。 密码也是如此。

我还可以利用POST方法:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"userid": self.usernameTextField.text, @"password": self.passwordTextField.text};

[manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

请注意,在您的字典中,您将字段名称(大概是useridpassword ,不过请咨询您的Web服务作者)替换为看起来是示例的userid / password值。 我认为您想还原原始的字段名称。

来自: Junda Ong教程

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"yourURL"
   parameters: parameters
      success:^(AFHTTPRequestOperation *operation, id responseObject) {
          NSLog(@"JSON: %@", responseObject); }
      failure:^(AFHTTPRequestOperation *operation, NSError *error) {
          NSLog(@"Error: %@", error);
      }];
NSURL * url = @"your url";
NSString * user = ([userField.text length] == 0) ? @"" : userField.text;
NSString * pass = ([passField.text length] == 0) ? @"" : passField.text;

NSMutableDictionary * postVars = [NSMutableDictionary dictionary];

[postVars setObject:user forKey:@"username"];
[postVars setObject:pass forKey:@"password"];

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:url parameters:postVars success:^(AFHTTPRequestOperation *operation, id responseObject) {

    if ([responseObject isKindOfClass:[NSDictionary class]]){

        if ([responseObject objectForKey:@"code"]) && ([responseObject objectForKey:@"message"]){

            NSString * code = [responseObject objectForKey:@"code"];
            NSString * message = [responseObject objectForKey:@"message"];

        }

    }

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    // something went wrong with your http post

}];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM