如何在iOS中的url中检查发布的用户名和密码是否有效

时间:2014-07-17 13:12:58

标签: ios objective-c json post get

我是这个领域的新手。我需要检查用户名和密码是否有效。

我尝试的是我有一个本地网址,用户名是23,密码是rama所以当我将该名称传递给网址时,点击该网址后我们会显示"用户名有效& #34;在浏览器中。

但现在我需要在两个username中输入passwordtextFields,然后点击提交按钮以显示它是否有效。

我跟着this link,但没有运气。请给我任何想法。

我试着这样没有运气:

username = @"23";
password = @"rama";
NSString *postString = [NSString stringWithFormat:@"userid=%@&password=%@",username, password];
NSLog(@"%@", postString);
NSData *postData = [postString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://192.168.3.196:8090/SaveDollar/rest/users/findByUser/userid/password"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];

提前致谢。

1 个答案:

答案 0 :(得分:0)

  1. 使用NSURLConnectionDelegate.
  2. 创建一个班级
  3. 添加此方法:

    - (void)connection:(NSURLConnection *) connection didReceiveResponse:(NSURLResponse *)response  
     {  
          [_data setLength:0];  
          NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
          NSInteger code = [httpResponse statusCode];
          if (code >= 200 && code <= 299 ) {
              NSLog(@"~~~~~ Request Maker Success! Code: %ld", (long)code);
          } else {
              NSLog(@"~~~~~ Request Maker Error! Code: %ld \n URL: %@", (long)code, _urlSent);
          }
     }
    
  4. 这是您使用您的姓名和密码发出请求的方式。你只是提出请求并等待。 didReceiveResponce会自动触发。您可以将此代码放入viewDidLoad或将其连接到您的按钮。

    NSString *someurl = @"http://%@:%@/rest?_name=%@&_pwd=%@";
    
    NSString *urlString = [NSString stringWithFormat:someurl, @"address", @"port", @"username", @"password"];
    NSString *urlStringFixed = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:urlStringFixed];
    NSLog(@"URL: %@", url);
    NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
    [theRequest addValue: @"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    [theRequest setHTTPMethod:@"GET"];
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    
    if (connection){
        // Connection exist
    }
    
  5. 更新。

    您需要一些网络服务。我使用rama23尝试了您的网址,但它没有响应。

    假设您的服务正常运作。如果密码和名称匹配,它将返回代码200.您可以在浏览器Web检查器中检查代码。无需解析您网页中的网页内容。您的Objective-C代码将侦听来自服务器的任何响应。如果code >= 200 and <= 299, - 一切都好。