gpt4 book ai didi

ios - NSURLSession/NSURLConnection HTTP 加载在 Swift 4 上失败

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:38 25 4
gpt4 key购买 nike

我有 xcode 9.1 和 swift 4,我无法再使用 webview 进行身份验证。这是我的代码:

import UIKit

protocol AuthViewControllerDelegate{
func getAccessToken(_ code: String)
}

class AuthViewController: UIViewController, NSURLConnectionDelegate {


@IBOutlet weak var navItem: UINavigationItem!
@IBOutlet weak var webView: UIWebView!

var delegate: AuthViewControllerDelegate?

override func viewDidLoad() {
super.viewDidLoad()

var link: "https://home.nest.com/login/oauth2?client_id=…"

if let encodeURL = link.URLEncodedString(), let url = URL(string: encodeURL) {
webView.loadRequest(URLRequest(url: url))
}
}


override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}

@IBAction func CancelPressed(_ sender: UIBarButtonItem) {
self.dismiss(animated: true, completion: nil)
}

func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if let url = request.url?.absoluteString, url.contains("code=") {
if let code = getQueryStringParameter(url,param: "code"){
self.dismiss(animated: true, completion: { () -> Void in
UIApplication.shared.isNetworkActivityIndicatorVisible = false
self.delegate?.getAccessToken(code)
})
}
}
return true
}

func webViewDidStartLoad(_ webView: UIWebView){
UIApplication.shared.isNetworkActivityIndicatorVisible = true
}

func webViewDidFinishLoad(_ webView: UIWebView){
UIApplication.shared.isNetworkActivityIndicatorVisible = false
}

func getQueryStringParameter(_ url: String?, param: String) -> String? {
if let url = url, let urlComponents = URLComponents(string: url), let queryItems = (urlComponents.queryItems) {
return queryItems.filter({ (item) in item.name == param }).first?.value!
}
return nil
}
}

这是我在日志中遇到的错误:

2017-11-07 20:49:30.836087+0000 TestApp[1851:1259046] TIC TCP Conn Failed [32:0x1c0365280]: 3:-9800 Err(-9800)

2017-11-07 20:49:30.836472+0000 TestApp[1851:1259046] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9800)

2017-11-07 20:49:30.836578+0000 TestApp[1851:1259046] Task <0A675AA1-7110-4FCC-99B2-054380D22F01>.<0> HTTP load failed (error code: -1200 [3:-9800])

2017-11-07 20:49:30.837548+0000 TestApp[1851:1258708] NSURLConnection finished with error - code -1200

而且我已经将其放入我的 .plist 文件中:

<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

注意:相同的代码与 swift 3.2 完美配合

最佳答案

检查你的htpps://是否正确,有同样的问题,更改url后修复。

关于ios - NSURLSession/NSURLConnection HTTP 加载在 Swift 4 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com