WKWebView POST 请求

Posted

技术标签:

【中文标题】WKWebView POST 请求【英文标题】:WKWebView POST request 【发布时间】:2016-05-23 11:20:35 【问题描述】:

我想打开一个带有WKWebView 的URL,方法是在URL 中传递一些参数作为发布请求。但我做不到。请帮忙。

【问题讨论】:

“通过在 URL 中传递一些参数作为发布请求”POST 参数不会进入 URL。请澄清。 实际上不是重复的,但这可能会对您有所帮助:***.com/q/26253133/653513 我的意思是example.com?email=krkapil@gmail.com&pass=password 我试过那个例子,但它不起作用 @EugeneDubinin 是的,这很重要。您提到的答案设置 HTTPBody 不幸的是,由于这个错误bugs.webkit.org/show_bug.cgi?id=145410,它不适用于 WKWebView 【参考方案1】:
var request = new NSMutableUrlRequest(new NSUrl(new NSString(paymentwebview.url))); //Your Url
request.HttpMethod = "POST";
request.Body = NSData.FromString(paymentwebview.data); //Data for POST
request["Content-Length"] = request.Body.Length.ToString();
request["Content-Type"] = "application/x-www-form-urlencoded charset=utf-8";
LoadRequest(request);

【讨论】:

【参考方案2】:

遇到了类似的问题。对我有用的是将参数作为 cookie 传递。

代码示例:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod: @"POST"];
NSString *params = @"param1=value1;param2=value2;";
[request addValue:params forHTTPHeaderField:@"Cookie"];
[self.webView loadRequest:request];

希望对你有帮助!

【讨论】:

这不适用于 WKWebView - 仅适用于 UIWebView。

以上是关于WKWebView POST 请求的主要内容,如果未能解决你的问题,请参考以下文章

iOS--WKWebView加载Post请求丢失body的解决方式

当我实现decisionPolicyForNavigationAction委托方法时,WKWebView中的Post请求将无效

iOS 11.3 的 WKWebView 中的 Service Worker 不可用

WKWebView javascript 警报、提示、确认不起作用

从应用程序的文档目录加载本地 html 文件 swift wkwebview

Swift:WKWebView 进阶填坑指南