如何解决带有POST方法的Swift WebKit requestBody
func webView(url: URL,delegate: Any = WebView(),body: [String : String]? = nil) -> UIView {
let view = UIView()
let webViewFrame = UIScrollView()
let webView = WebView()
view.addSubview(webViewFrame)
webViewFrame.isDirectionalLockEnabled = true
webViewFrame.backgroundColor = .white
webViewFrame.layer.cornerRadius = 10
webViewFrame.anchor(top: view.topAnchor,left: view.leftAnchor,bottom: view.bottomAnchor,right: view.rightAnchor)
view.addSubview(webView)
webView.navigationDelegate = delegate as? WKNavigationDelegate
webView.scrollView.delegate = delegate as? UIScrollViewDelegate
webView.load(URLRequest(url: URL(string: "https://www.google.com")!))
webView.allowsBackForwardNavigationGestures = true
webView.anchor(top: webViewFrame.topAnchor,left: webViewFrame.leftAnchor,bottom: webViewFrame.bottomAnchor,right: webViewFrame.rightAnchor,paddingTop: 16,paddingBottom: 16)
let url = URL(string: "https://pay.weatly.me/test_body2")
guard let requestUrl = url else { fatalError() }
var request = URLRequest(url: requestUrl)
request.httpMethod = "POST"
let testBody = ["orderId" : "kyo"]
let postString = getPostString(params: testBody)
request.httpBody = postString.data(using: String.Encoding.utf8);
let task = URLSession.shared.dataTask(with: request) { (data,response,error) in
if let error = error {
print("Error took place \(error)")
return
}
if let response = response as? HTTPURLResponse {
DispatchQueue.main.async { // Correct
webView.load(URLRequest(url: response.url!))
}
}
if let data = data,let dataString = String(data: data,encoding: .utf8) {
print("Response data string:\n \(dataString)")
}
}
task.resume()
return view
}
这是UIView的全部功能。我的目标是实现。
- 有一个URL,我必须对requestBody使用POST方法。在这里,[“ orderId”:“ kyo”]
- 我请求正文后,如果我打开https://pay.weatly.me/test_body2,则应该在webView上看到“ kyo”。
但是,我只看到带有405代码的错误webView。如果您只是转到此链接,则可以看到https://pay.weatly.me/test_body2。 主要问题是...
if let data = data,encoding: .utf8) {
print("Response data string:\n \(dataString)")
}
我想用屏幕上的数据打开webView ...
这些是我所知道的
- 我成功地使用POST方法和正文请求了网址
- 服务器工作正常。它在网页上显示了“ kyo”
- 我可以使用dataString = String(data:data,encoding:.utf8)检查字符串数据
- 尽管如此,网页还是正确的,如果我使用webView.load()加载网址,则会看到405错误页面。
请帮助我...:(
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。