【问题标题】:UNIRest Https "The network connection was lost" ErrorUNIRest Https“网络连接丢失”错误
【发布时间】:2017-06-17 20:46:50
【问题描述】:

我正在开发一个 IOS 应用程序,并且我正在使用我自己创建的托管在 Windows 服务器中的 Web 服务。我也在使用 RapidSSL 的 SSL 证书。

我正在使用 UniRest Objective-C 库 Unirest Lib >>,当我尝试请求 https 地址时,我收到此错误。

Error Domain=NSURLErrorDomain Code=-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;

我刚刚意识到,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"]);
        }
    }];
}

【问题讨论】:

标签: ios objective-c ssl https unirest


【解决方案1】:

我遇到了类似的问题,看起来不是超时问题。我在使用 Alamofire 时遇到了这种情况,我认为这与 TLS 问题有关,因为这是我们在服务器端进行的更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2015-09-18
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2017-01-02
    • 2014-10-11
    相关资源
    最近更新 更多