我如何在WKWebView中加载带有参数的POST URLRequest?

问题描述 投票:0回答:1

对不起,我的英语很弱我尝试了多种类型的解决方案,但无法在Xcode 11.2.1swift 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: "&")  
    } 

和此

Post Request with Parameter

并且也尝试在我的代码中添加以下行

request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")

但不起作用我触发请求是因为WKWebView屏幕没有打开,但没有加载请求。如果我没有设置navigationDelegate并打开正常的URL,那么它将完全正常工作如果我设置navigationDelegate,则所有空白页都会出现在所有请求中,如“正常” URL触发或发布参数URL触发,所有将进入“空白页”我不明白WKWebView有什么问题请帮我。在此先感谢

抱歉,我的英语很弱,我尝试了多种类型的解决方案,但无法在Xcode 11.2.1和Swift 5中正常工作。我尝试了这种var urlRequest = URLRequest(url:URL(string:“ https:// xxxxxx / login” )!)...

ios swift5 ios12 xcode11.2
1个回答
0
投票

[尝试一下,我们将使用URLSession发起POST请求,将服务器返回的数据转换为String,而不是加载url,我们将使用loadHTMLString,它将:

© www.soinside.com 2019 - 2024. All rights reserved.