使用目标 C

问题描述

我正在为用户必须登录的应用创建视图。 所以我必须调用我的服务器 2 次:

  • 第一次调用(使用 GET 方法)让我获得了一个包含 cookie(名为 XSFR-TOKEN)的响应,我必须提取该 cookie 并稍后用于第二次调用
  • 第二个(使用 POST 方法)是一个调用,我必须在请求正文(以 JSON 格式)中发送几个参数(用户名、密码、client_id 和先前获得的令牌)。此调用的响应会将我重定向一个虚构的 URL。

当我在我的函数中进行第一次调用时,它成功运行,但我无法从 responseString 中提取和保存令牌以备后用。

我被卡住了,因为我不知道如何继续。 谢谢你帮助我。

    -(void) makeLoginRequest {
    NSLog(@"LoginFirstStepViewController - makeLoginRequest");
    
    // Preparing URL
    Nsstring *loginURL = SELFBLUE_LOGIN_REDIRECT_OAUTH;
    NSURL *url = [NSURL URLWithString:loginURL];
    
    // Initialize the request
    NSMutableuRLRequest *request = [NSMutableuRLRequest requestWithURL:url];
    
    // Set request method
    [request setHTTPMethod: @"GET"];
     
    NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data,NSURLResponse * _Nullable response,NSError * _Nullable error) {
        if (error) {
            NSLog(@"Error: %@",error);
            Nsstring *errorMsg = error.userInfo[@"NSLocalizedDescription"];
            errorMsg = (errorMsg) ? errorMsg:NSLocalizedString(@"unexpected_error",nil);
            dispatch_async(dispatch_get_main_queue(),^{
                [self.view maketoast:errorMsg duration:4.0 position:CSToastPositionCenter];
            });
            return;
        } else {
            Nsstring *responseString = [[Nsstring alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"Response: %@",responseString);
        }
        
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
        NSLog(@"makeLoginRequest: %@",response);
        // Status code 200 allows me to continue,otherwise I had an error.
        if (httpResponse.statusCode !=200) {
            NSLog(@"%ld",(long)httpResponse.statusCode);
            [self showMessageAndUnwindForHttpError:httpResponse.statusCode];
            return;
        }
                
        //EXTRACT THE TOKEN
        
        
       //WRITE CODE FOT POST REQUEST

    }];
    [task resume];
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)