![](/img/trans.png)
[英]iOS - How to pass array to AFNetworking as parameters (Objective-C)
[英]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请求。
提前致谢。
您不想使用_usernameTextField
( UITextField
),而是使用_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);
}];
请注意,在您的字典中,您将字段名称(大概是userid
和password
,不过请咨询您的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.