gpt4 book ai didi

iPhone SDK : control websites in UIWebView programmatically

转载 作者:太空狗 更新时间:2023-10-29 16:38:14 24 4
gpt4 key购买 nike

我需要控制加载到 UIWebView 中的网站,例如发送发布数据和使用获取请求。每次请求后,响应应作为字符串加载到变量中。

这样做的原因是我试图从没有公共(public) Web API 的网站获取数据并使用基于 cookie 的用户身份验证。所以我想登录用户,从该站点获取一些数据并显示结果。

有这样的可能吗?

编辑:我刚刚遇到 stringByEvaluatingJavaScriptFromString 方法。可以用这种方法用JS控制UIWebView中的内容吗?就像提交 Web 表单并等待页面完成加载并获取响应数据一样?

编辑 2:刚刚找到一个可能有用的框架 ASIHTTPRequest

最佳答案

当然可以。只需自己编写网络代码,然后将生成的 HTML 转储到其他 UIWebView 中。

// Do your POST
NSURL *url = [NSURL URLWithString:"http://stackoverflow.com"];
NSString *body = @"laadeedaa";

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]];

// Dump the response to the UIWebView
[webView loadRequest:request];

如果您想在显示之前处理响应,那么您需要按照以下方式做一些事情:

NSURLResponse *response = nil;
NSError *error = nil;
NSData *respData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSString *respString = [[[NSString alloc] initWithData:respData
encoding:NSUTF8StringEncoding] autorelease];

NSString *htmlString = [self doSomethingWith:respString];

[webView loadHTMLString:htmlString baseURL:@"http://stackoverflow.com"];

另请记住,您可以使用 JavaScript 来控制浏览器:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

关于iPhone SDK : control websites in UIWebView programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2061393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com