我有这样的 api http://qa.networc.in:1336/api/users/app/login并希望在单击登录按钮时触发此 api。我需要匹配电子邮件和密码。
- (void)viewDidLoad {
[super viewDidLoad];
name = [NSMutableArray new];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *url = [NSURL URLWithString:@"http://qa.networc.in:1336/api/users/app/login"];
NSURLRequest *request= [NSURLRequest requestWithURL:url];
[NSURLConnection connectionWithRequest:request delegate:self];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse: (nonnull NSURLResponse *)response {
data = [[NSMutableData alloc] init];
NSLog(@"Did receive response");
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theta {
[data appendData:thedata];
NSLog(@"daata");
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
name= [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
UIAlertView *errorview= [[UIAlertView alloc]initWithTitle:@"Error" message:@"The download could not complete please make sure you're connected to internet" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles: nil];
[errorview show];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
- (IBAction)login:(id)sender {
}
最佳答案
第一步
在您的 .plist 中添加以下详细信息
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
第二步
- (IBAction)login:(id)sender {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://qa.networc.in:1336/api/users/app/login"]];
NSURLSession *session = [NSURLSession sharedSession];
// email": user_name, "password": password, "deviceToken":'testdata
NSString * params =[NSString stringWithFormat:@"email=%@&password=%@&deviceToken=testdata",yourEmailtextfield.text,yourpasswordtextfield.text];
request.HTTPMethod = @"POST";
request.HTTPBody =[params dataUsingEncoding:NSUTF8StringEncoding];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
// ...
NSLog(@"Response:%@ %@\n", response, error);
if(error == nil)
{
// use NSJSON Serlizeitaion and serlize your value
NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog(@"Data = %@",text);
}
}];
[task resume];
}
有关其他信息,请参阅此 tutorial
关于ios - 如何使用 nsjsonserilization 添加登录 api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36836340/