首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用POST参数通过UIWebView加载网页

使用POST参数通过UIWebView加载网页
EN

Stack Overflow用户
提问于 2009-07-17 10:47:27
回答 3查看 41.4K关注 0票数 55

可以使用POST参数通过UIWebView加载页面吗?我可能只需要加载一个带有参数的嵌入式表单,然后用javascript填充它们,然后强制提交,但是有没有一种更干净更快的方法呢?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-17 12:37:01

创建POST URLRequest并使用它填充webView

代码语言:javascript
复制
NSURL *url = [NSURL URLWithString: @"http://your_url.com"];
NSString *body = [NSString stringWithFormat: @"arg1=%@&arg2=%@", @"val1",@"val2"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];
[webView loadRequest: request];
票数 120
EN

Stack Overflow用户

发布于 2017-05-17 01:10:22

这是Swift 3的@2ank3th的修改答案:

代码语言:javascript
复制
let url = NSURL (string: "https://www.google.com")
let request = NSMutableURLRequest(url: url! as URL)
request.httpMethod = "POST"
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")

let post: String = "sourceId=44574fdsf01e-e4da-4e8c-a897-17722d00e1fe&sourceType=abc"
let postData: NSData = post.data(using: String.Encoding.ascii, allowLossyConversion: true)! as NSData

request.httpBody = postData as Data
webView.loadRequest(request as URLRequest)
票数 1
EN

Stack Overflow用户

发布于 2018-02-28 20:25:14

对于swift 4

首先,最好使用这个扩展:

代码语言:javascript
复制
extension URL{
    func withQueries(_ queries:[String:String]) -> URL? {
        var components = URLComponents(url: self, resolvingAgainstBaseURL: true)
        components?.queryItems = queries.flatMap{URLQueryItem(name: $0.0, value: $0.1)}
        return components?.url
    }

    func justQueries(_ queries:[String:String]) -> URL? {
        var components = URLComponents(url: self, resolvingAgainstBaseURL: true)
        components?.queryItems = queries.flatMap{URLQueryItem(name: $0.0, value: $0.1)}
        return components?.url
    }

}

这个扩展对于处理参数和它的值非常有用。第二:

代码语言:javascript
复制
let urlstring = "https://yourdomain.com"
        let url = URL(string: urlstring)!
        let request = NSMutableURLRequest(url: url as URL)
        request.httpMethod = "POST"
        request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
        let query :[String:String] = ["username":"admin","password":"111"]
        let baseurl = URL(string:urlstring)!
        let postString = (baseurl.withQueries(query)!).query
        request.httpBody = postString?.data(using: .utf8)
        webview.load(request as URLRequest)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1142562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档