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 个文本字段(用户名和密码)的视图控制器,每当我按下登录按钮时,我发送一个异步 POST 请求到 php website.The POST 请求必须包含参数 'username' 和 'password',并将收到 JSON 响应,返回 'code' 和 'message'。我必须在 UIAlert 中显示已解析的代码和消息,以及 api 调用花费的时间(以毫秒为单位)。唯一有效的登录名是用户名:Yomaki password:asdfgh。登录成功后,点击 UIAlert 上的 'OK' 应该会将我们带回 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
之类的名称替换为示例 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
}];
我是 iOS 开发的新手,我被困在我的小项目中,我必须在其中创建对 php 网站的异步 POST 请求。我在网上阅读了资源,发现 AFNetworking 最适合做这项工作,所以我通过终端使用 cocoapods 安装了 AFNetworking 2.4。我有一个有 2 个文本字段(用户名和密码)的视图控制器,每当我按下登录按钮时,我发送一个异步 POST 请求到 php website.The POST 请求必须包含参数 'username' 和 'password',并将收到 JSON 响应,返回 'code' 和 'message'。我必须在 UIAlert 中显示已解析的代码和消息,以及 api 调用花费的时间(以毫秒为单位)。唯一有效的登录名是用户名:Yomaki password:asdfgh。登录成功后,点击 UIAlert 上的 'OK' 应该会将我们带回 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
之类的名称替换为示例 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
}];