Ios 如何在WKWebView中加载带有参数的POST URLRequest?
对不起,我的英语很差 我尝试了多种类型的解决方案,但在Ios 如何在WKWebView中加载带有参数的POST URLRequest?,ios,swift5,ios12,xcode11.2,Ios,Swift5,Ios12,Xcode11.2,对不起,我的英语很差 我尝试了多种类型的解决方案,但在Xcode 11.2.1和swift 5 我试试这个 var urlRequest = URLRequest(url: URL(string: "https://xxxxxx/login")!) urlRequest.httpMethod = "POST" let params = [ "username": SessionManager.share
Xcode 11.2.1
和swift 5
我试试这个
var urlRequest = URLRequest(url: URL(string: "https://xxxxxx/login")!)
urlRequest.httpMethod = "POST"
let params = [
"username": SessionManager.shared.username!,
"password": SessionManager.shared.password!,
"vhost": "standard"
]
let postString = self.getPostString(params: params)
urlRequest.httpBody = postString.data(using: .utf8)
webView.load(urlRequest)
...
//helper method to build url form request
func getPostString(params:[String:String]) -> String
{
var data = [String]()
for(key, value) in params
{
data.append(key + "=\(value)")
}
return data.map { String($0) }.joined(separator: "&")
}
还有这个
并尝试在我的代码中添加以下行
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
但不起作用
我触发请求是因为未工作WKWebView
屏幕已打开,但未加载请求。
如果我没有设置navigationDelegate并打开normalURL
,那么它就完全工作了
如果我设置了navigationDelegate,那么所有请求中都会出现空白页,比如普通URL
fire或post参数URL
fire,所有请求都会出现空白页
我不明白WKWebView
请帮帮我。
提前感谢尝试此操作,我们将使用URLSession启动POST请求,将服务器返回的数据转换为字符串,而不是加载url,我们将使用loadHTMLString,它将: 设置网页内容和基本URL 内容是我们转换的字符串::-
var request = URLRequest(url: URL(string: "http://www.yourWebsite")!)
request.httpMethod = "POST"
let params = "Your Parameters"
request.httpBody = params.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { (data : Data?, response : URLResponse?, error : Error?) in
if data != nil {
if let returnString = String(data: data!, encoding: .utf8) {
self.webView.loadHTMLString(returnString, baseURL: URL(string: "http://www.yourWebsite.com")!)
}
}
}
task.resume()
请求正文使用与查询字符串相同的格式:
parameter=value&also=another
因此,您请求的内容类型为application/x-www-form-urlencoded:
let postString = self.getPostString(params: params)
urlRequest.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
urlRequest.httpMethod = "POST"
urlRequest.httpBody = postString.data(using: .utf8)
webView.load(urlRequest)
我试过了,但没有使用相同的空白页面,你有什么错误吗?您能否共享该端点上服务器的预期响应。此响应正在控制台中获取“收到的XPC错误连接对于消息类型3 kCFNetworkAgentXPCMessageTypePACQuery无效”