问题描述
我正在为用户必须登录的应用创建视图。 所以我必须调用我的服务器 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 (将#修改为@)