【问题标题】:iOS Trying to call web service and I'm getting a NSURLErrorDomain erroriOS 尝试调用 Web 服务,我收到 NSURLErrorDomain 错误
【发布时间】:2015-04-01 13:12:11
【问题描述】:

我正在尝试连接到一个网络服务,如果我通过 Safari 访问它,我会返回一些 json,但是当我通过代码访问它时,我会收到一个带有以下描述的 NSURLErrorDomain 错误。

“此服务器的证书无效。您可能正在连接一个伪装成“url”的服务器,它可能...”

代码如下:

    NSURL *url = [NSURL URLWithString:@"webservice_url"];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    [request setHTTPMethod:@"GET"];

    NSError *error = nil;
    NSHTTPURLResponse *responseCode = nil;

    NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];

谁能解释一下如何解决这个问题?此外,它是一个 https 网络服务。

【问题讨论】:

  • 也许http方法应该是POST而不是GET

标签: ios


【解决方案1】:

在您的代码中,URLWithString 值必须是实际的 URL。这与进入 Safari 并输入“webservice_url”作为整个 URL 而不是给它整个地址是一样的。相反,您需要执行以下操作:

NSURL *url = [NSURL URLWithString:@"https://www.urlgoeshere.com/getJSON"];

【讨论】:

  • 这是一个 URL,我只是不想放实际的 URL
【解决方案2】:

该网站没有 HTTPS 证书。试着调查一下: https://stackoverflow.com/a/15011030/4716039

【讨论】:

    【解决方案3】:

    你可以这样使用-

    NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"];
    
    [NSURL URLWithString:@"foo" relativeToURL:baseURL];
    // http://example.com/v1/foo
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      相关资源
      最近更新 更多