0

我有一个附加了安全代码的网络服务 url。当我输入正确的安全代码例如说 abcd 时,应用程序将加载。当我输入错误的安全代码时,我需要将警报显示为“错误的安全代码”。我的代码在这里:

- (void) alertStatus:(NSString *)msg :(NSString *)Title:(int)tag
{
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:Title

                                                    message:msg
                                                   delegate:self
                                          cancelButtonTitle:@"Ok"
                                          otherButtonTitles:nil, nil];
    if(tag) 
        alertView.tag = tag;
    [alertView show];
}


-(IBAction)loginClicked:(id)sender {

    @try {

        if([[txtsecurecode text] isEqualToString:@""]  ) {
            [self alertStatus:@"Please enter Access code" :@"Login Failed!":0];
        } else {
            NSString *post =[[NSString alloc] initWithFormat:@"txtsecurecode=%@",[txtsecurecode text]];

            NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://my example.com/Accountservice/Security/ValidAccess?accesscode=%@&type=1",txtsecurecode.text]];

            NSString *responseData = [[NSString alloc]initWithData:[NSData dataWithContentsOfURL:url] encoding:NSUTF8StringEncoding];

responseData 是我从 Web 服务 url 获得响应的参考。所以在获得响应的下方,我需要保持警惕。

在这种情况下,当输入错误的安全代码时显示警报,我如何保持警报?

4

6 回答 6

0

你想做的是在你得到回应的地方完成。

在响应中,您将有一个变量通知成功或失败。

检查该值。

  • 如果该值指示成功。如​​果指示成功则继续
  • 失败然后显示“身份验证失败作为警报。
于 2013-03-19T06:03:00.057 回答
0

我不明白为什么你需要一个标签,而实际上你实际上是在命名一个特定的方法。也许,代码可以像下面这样简单?

- (void) alertStatus:(NSString *)msg :(NSString *)Title {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:Title
                                                message:msg
                                               delegate:self
                                      cancelButtonTitle:@"Ok"
                                      otherButtonTitles:nil, nil];
[alertView show];
return;
}
于 2013-03-19T06:06:58.707 回答
0

您必须检查来自 Web 服务数据的响应以获取有效和无效代码。

你会得到这个方法::

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    value = [[NSString alloc] initWithBytes: [webdata mutableBytes] length:[webdata length] encoding:NSUTF8StringEncoding];
    NSLog(@"==>%@", value);
    
    if ([value isEqualToString:@"Valid"]) {
       NSLog(@"Valid");
    }
    else {
       NSLog(@"Invlid");

       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:Title 
                                               message:msg
                                               delegate:self
                                      cancelButtonTitle:@"Ok"
                                      otherButtonTitles:nil, nil];
       [alertView show];
    }
    
    [webData release];
    webData = nil;
    
    [connection release];
    connection = nil;
}

根据“价值”,您可以检查您的有效无效代码。

于 2013-03-19T06:11:31.727 回答
0

您必须检查您的回答,无论它是否给出了您想要的答案。

- 如果它没有给出正确的答案。你可以在这里显示你的 alertView。否则你可以继续你的进一步逻辑。

于 2013-03-19T06:13:33.930 回答
0
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    responseString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding])

    if ([responseString isEqualToString:@"Success"]) {
       NSLog(@"Success");
    }
    else {

       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:Title 
                                               message:msg
                                               delegate:self
                                      cancelButtonTitle:@"Ok"
                                      otherButtonTitles:nil, nil];
       [alertView show];
    }

    [responseData release];
    responseData = nil;

    [connection release];
    connection = nil;
}
于 2013-03-19T06:20:26.783 回答
0

尝试使用此代码...

-(IBAction)loginClicked:(id)sender {

    @try {

        if([[txtsecurecode text] isEqualToString:@""]  ) {
            [self alertStatus:@"Please enter Access code" :@"Login Failed!":0];
        } else {
            NSString *post =[[NSString alloc] initWithFormat:@"txtsecurecode=%@",[txtsecurecode text]];

            NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://my example.com/Accountservice/Security/ValidAccess?accesscode=%@&type=1",txtsecurecode.text]];


            /*UPDATED*/
            NSString *responseData = [[NSString alloc]initWithContentsOfURL:[NSData dataWithContentsOfURL:url] encoding:NSUTF8StringEncoding error:nil];


            if([responseData isEqualToString:@""])
            {
                [self alertStatus:@"Please enter valid Access code" :@"Login Failed!":0];
            }
            else
            {
                //Your code for handling the response data
            }
        }
    }
}
于 2013-03-19T06:44:07.567 回答