【问题标题】:ASIHTTPRequest with UIWebView带有 UIWebView 的 ASIHTTPRequest
【发布时间】:2011-09-15 13:35:23
【问题描述】:

我需要连接到受保护的站点并尝试使用 ASIHTTPRequest

这是我的代码:

url = [NSURL URLWithString:@"http://myurl/page.aspx"];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setUsername:username];
[request setPassword:password];
[request setDomain:domain];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
    [webView loadHTMLString:[request responseString] baseURL:[request url]];
    }

当我使用 NSLog 查看 [request responseString] 时,我得到了正确的 HTML,但结果是一个空白的白色 webview。 从小告密者显示的传出请求警告中,我看到了初始请求和一个指向外部资源的请求。

到目前为止,我的猜测是初始请求正确地使用了来自 ASIHTTPRequest 的身份验证并获取页面,但是 uiwebview 将尝试加载包含的 .js 文件,并且由于 uiwebview 没有进行身份验证,它根本不会呈现页面...

有人知道如何解决我的问题吗?

【问题讨论】:

    标签: iphone ios cocoa-touch authentication


    【解决方案1】:

    你试过ASIWebPageRequest吗?我的猜测是您在该页面中有未下载的资源,例如http://myurl/image.jpg

    【讨论】:

    • +1,尤其是标题为“Using ASIWebPageRequest to load data into a WebView / UIWebView”的文档部分。这就是你的答案。
    • 谢谢它的工作,我正在查看文档,但无法找到 :-( 但我仍然有 2 个小问题.. 我复制了示例中的代码并添加了 [webView setScalesPageToFit :YES];[webView loadHTMLString:response baseURL:[theRequest url]]; 首先,当我双击时,它不会自动缩放,其次,该页面上的(唯一的另一个)链接不起作用。有什么想法吗?
    • 不确定规模问题,关于第二个问题,您是否尝试过该文档的“更复杂的示例”部分?实际上,我个人从未使用过UIWebViewASIWebPageRequest
    【解决方案2】:

    ASIHttpRequest 异步运行。您需要将 webview 加载代码放入 ASIHTTPRequest 回调中。 (请求已完成)。

    向您的类添加一个方法,如下所示:

    - (void)requestFinished:(ASIHTTPRequest *)request
    {
        NSError *error = [request error];
        if (!error) {
            [webView loadHTMLString:[request responseString] baseURL:[request url]];
        }
    }
    

    还有一个 requestFailed 方法可以用来捕获额外的错误,你也应该实现它。一旦 ASIHttpRequest 完成,将调用这些方法中的一个或另一个。

    请注意,在进行异步调用之前,您可能还需要在请求上设置委托。 (所以你在同一个地方设置了身份验证的东西)。

    request.delegate = self;
    

    【讨论】:

    • @gazmozzii - 他可能应该让这个异步,但这不是他正在做的。他的[request startSynchronous] 触发请求并在此处阻塞直到它返回,然后继续到他的代码中的下一行。
    • 哎呀 - 错过了 - 很高兴看到每个人都在球上 :-)
    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多