我正在开发一个IOS应用程序,我在Windows服务器中使用自己创建的Web服务托管。我也使用RapidSSL的SSL证书。
我正在使用UniRest Objective-C库Unirest Lib >>,当我尝试请求https地址时,我收到此错误。
错误域= NSURLErrorDomain代码= -1005“网络连接是 丢失。“UserInfo = {NSUnderlyingError = 0x1702501a0 {错误 Domain = kCFErrorDomainCFNetwork Code = -1005“网络连接是 丢失。” 的UserInfo = {NSErrorFailingURLStringKey = https://myapi.com/authorize.aspx, NSErrorFailingURLKey = https://myapi.com/authorize.aspx, _kCFStreamErrorCodeKey = 54,_kCFStreamErrorDomainKey = 1,NSLocalizedDescription =网络连接丢失。}}, NSErrorFailingURLStringKey = https://myapi.com/authorize.aspx, NSErrorFailingURLKey = https://myapi.com/authorize.aspx, _kCFStreamErrorDomainKey = 1,_kCFStreamErrorCodeKey = 54,NSLocalizedDescription =网络连接丢失。}
但如果我使用http协议请求相同的地址,则没有错误!
Info.plist here;
我刚刚意识到,Safari也无法打开页面!奇怪的!我可以在桌面Chrome和桌面版Firefox上打开页面,但桌面版Safari也无法打开。
这是我的代码:
+(void)RunAuthApiWithUsername:(NSString *)username Password:(NSString *)password completion:(void (^)(BOOL success, NSString* title, NSString* message))completionBlock
{
NSDictionary* headers = @{@"accept": @"application/json"
};
NSDictionary *parameters = @{@"username": username,
@"password": password
};
[[UNIRest post:^(UNISimpleRequest *request) {
[request setUrl:API_AUTHORIZE_URL];
[request setHeaders:headers];
[request setParameters:parameters];
}] asJsonAsync:^(UNIHTTPJsonResponse* response, NSError *error) {
NSDictionary *jsonDict = response.body.JSONObject;
NSString* isSuccess = [jsonDict objectForKey:@"success"];
if([isSuccess isEqualToString:@"1"]){
completionBlock(YES, nil, nil);
}
else{
completionBlock(NO, [jsonDict objectForKey:@"title"], [jsonDict objectForKey:@"message"]);
}
}];
}
答案 0 :(得分:0)
我遇到了类似的问题,看起来它不是超时问题。我在使用Alamofire时遇到过这种情况,我认为这与TLS问题有某种关系,因为这是我们在服务器端改变的。