【问题标题】:How to call Web services in application using parameters in IOS? [closed]如何使用IOS中的参数调用应用程序中的Web服务? [关闭]
【发布时间】:2016-03-16 06:36:18
【问题描述】:

我已经给出了一个 url(http://xxxxxxxxx/login.php) 和两个参数(用户名和密码)来在应用程序中使用和调用这些服务,以及响应代码:成功:1 未找到用户&成功:0 – 成功。
我必须使用用户名和密码创建一个登录页面,如果它们匹配,那么用户应该移动到下一页,对如何启动代码有点困惑。任何人都可以帮助我。请让我知道您拥有的任何示例的代码。

【问题讨论】:

  • 你做了什么努力,有没有尝试过?
  • 询问“我从哪里开始”的问题通常过于宽泛,不适合本网站。人们有自己解决问题的方法,因此不可能有正确的答案。好好阅读Where to Start,然后写下你的帖子。
  • 你所做的很不安全,希望这只是理论上的讨论,而不是真正的实现。

标签: ios objective-c json afnetworking xcode7


【解决方案1】:

试试这样的:

NSString *stringUrl = [NSString stringWithFormat:@"http://xxxxxxxxx/login.php?Username=%@&Password=%@",YouruserName, Yourpassword];

创建 NSURLConnection 并在完成块中获得响应

NSURL *url = [NSURL URLWithString:stringUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response,
                                               NSData *data, NSError *connectionError)
{
      if (data.length > 0 && connectionError == nil)
      {
         NSDictionary *dicYourResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];   
      }                                 
}];

【讨论】:

    【解决方案2】:

    通过使用 NSURLSession,你可以在登录按钮操作上调用这个方法--

     -(void)login
        {
    
    
            NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
            NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
            NSURL *url = [NSURL URLWithString:@"http://www.example.com/pm/api/login"];
            NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                                   cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                               timeoutInterval:60.0];
    
          [request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    
    
            [request addValue:@"*/*" forHTTPHeaderField:@"Accept"];
    
            [request setHTTPMethod:@"POST"];
    
            NSString *mapData = [NSString stringWithFormat:@"username=admin&password=testing&api_key=bf45c093e542f057c123ae7d6"];
    
               NSData *postData = [mapData dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    
            [request setHTTPBody:postData];
    
    
            NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    
                if(error == nil)
                {
    
                    NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
    
    
                    NSError *error = nil;
                    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
                if(error!=nil)
                {
                    NSLog(@"error = %@",error);
    
                }
    
                dispatch_async(dispatch_get_main_queue(), ^{
                    [self checkUserSuccessfulLogin:json];
                });
            }
            else{
    
                NSLog(@"Error : %@",error.description);
    
            }
    
    
        }];
    
    
        [postDataTask resume];
    
    }
    - (void)checkUserSuccessfulLogin:(id)json
    {
      //  NSError *error;
       NSDictionary *dictionary = (NSDictionary *)json;
    
    
        if ([[dictionary allKeys] containsObject:@"login"])
        {
            if ([[dictionary objectForKey:@"login"] boolValue])
            {
    
                if(checkBoxSelected == YES)
                {
                    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
                    NSString* textField1Text = usernameField.text;
                    [defaults setObject:textField1Text forKey:@"textField1Text"];
    
                    NSString *textField2Text = passwordField.text;
                    [defaults setObject:textField2Text forKey:@"textField2Text"];
                    [defaults synchronize];
                }
                NSString *strID = [[NSUserDefaults standardUserDefaults] stringForKey:@"textField1Text"];
                NSString *strPWD = [[NSUserDefaults standardUserDefaults] stringForKey:@"textField2Text"];
    
                [[NSUserDefaults standardUserDefaults] setValue:[dictionary objectForKey:@"user_id"] forKey:@"CurrentUserLoggedIn"];
              NSString *strUser = [[NSUserDefaults standardUserDefaults] stringForKey:@"CurrentUserLoggedIn"];
    
                [[NSUserDefaults standardUserDefaults]synchronize];
                [self saveLoginFileToDocDir:dictionary];
    
    
                ItemManagement *i = [[ItemManagement alloc]init];
                [self.navigationController pushViewController:i animated:YES];
    
            }
            else
            {
                NSLog(@"Unsuccessful, Try again.");
                UIAlertView *alertLogin = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Wrong Username Or Password" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:nil];
                [alertLogin show];
            }
        }
    }
    
    
    
    
    - (void)saveLoginFileToDocDir:(NSDictionary *)dictionary
    {
        NSArray *pListpaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
        NSString *pListdocumentsDirectory = [pListpaths objectAtIndex:0];
        NSString *path = [pListdocumentsDirectory stringByAppendingPathComponent:@"Login.plist"];
    
        BOOL flag = [dictionary writeToFile:path atomically:true];
    
        if (flag)
        {
            NSLog(@"Saved");
        }
        else
        {
            NSLog(@"Not Saved");
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多