我正在努力使用swift 4.2的最新Xcode版本更改项目上的用户代理。
我想假装我是Mac,正在访问特定网站。 请修改此代码并将其发布在评论中
到目前为止,这是我的代码。
class ViewController: UIViewController {
@IBOutlet weak var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let userAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10"
let myURL = NSURL(string: "http://website.com")
let myURLRequest:NSURLRequest = URLRequest(url: myURL! as URL) as NSURLRequest
webview.load(myURLRequest as URLRequest)
myURLRequest.setValue(userAgent, forKey: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36")
webview.load(URLRequest(url: myURL! as URL))
}
}
如果我构建它,则会收到此错误:
。
答案 0 :(得分:1)
我在这里看到的问题,是在没有设置user-agent
的情况下首次加载,然后错误地设置并提出了另一个请求
请检查appledoc,以设置HTTPHeaderField。
根据您给定的代码,解决方案将是
class ViewController: UIViewController {
@IBOutlet weak var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let userAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10"
if let myURL = URL(string: "http://website.com") {
var myURLRequest= URLRequest(url: myURL)
myURLRequest.setValue(userAgent, forHTTPHeaderField:"user-agent")
webview.load(myURLRequest)
}
}
}
答案 1 :(得分:0)
WKWebView
具有一个名为customUserAgent的属性,专门用于此目的:
let customUserAgent = "Mozilla/5.0 ..." // Your custom user agent string go here"
webView.customUserAgent = customUserAgent