【问题标题】:iOS stringWithContentsOfURL gives HTML erroriOS stringWithContentsOfURL 给出 HTML 错误
【发布时间】:2013-09-10 04:35:46
【问题描述】:

我正在尝试使用 SBJSon 解析 Google Maps api,但在解析之前,当我使用以下代码时,我会在 HTML 中出现 Access Denied 错误,此错误仅在我在 Device 上运行时出现,如果我运行在模拟器中也是如此..它给了我谷歌地图 api 字符串..设备运行应该是什么错误。

NSString *String = [NSString stringWithContentsOfURL:url
                                                    encoding:NSUTF8StringEncoding
                                                       error:nil];

NSLog(@"string %@",string);

错误

<HTML><HEAD> <TITLE>Access Denied</TITLE> </HEAD>....

完整的 Html 错误类似于 Setting Proxy Username & password using Objective-C - iPhone

【问题讨论】:

    标签: iphone ios ipad ios6


    【解决方案1】:

    您的设备连接的网络不允许访问该 URL。由于您可以从您的 MAC 访问 URL,请将您的设备连接到与您的 MAC 相同的网络。它应该可以工作。

    替代解决方案,首先从设备的 Safari 浏览器访问一些 URL。如果要求进行身份验证,请提供正确的用户名和密码。连接后,请勿关闭选项卡或 Safari 应用程序。运行您的应用程序,URL 现在应该可以工作了。


    编辑

    如果您仍然面临身份验证问题,您最好实现实现NSURLConnectionDelegate 的异步下载器。在方法中提供认证参数,

    - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;
    

    您使用的 API stringWithContentsOfURL:encoding:error: 不会给您太大的灵活性。

    希望有帮助!

    【讨论】:

    • 我为 MAC 和设备连接到同一个网络,如果我在设备浏览器中打开我的 google api url,它会显示 json 文件
    • 感谢您的所有帮助。我使用了 Nsurlconnection 委托,但没有调用此方法 didReceiveAuthenticationChallenge ..
    • @user2519391 你确定你已经正确实现了下载器?因为如果实施得当,它肯定会起作用。
    • 抱歉回复晚了..我试图使用异步下载而不是 stringWithContentsofURl ,这也给了我访问被拒绝..现在调用 urs didReceiveAuthenticationChallenge ......我正在使用.... [[ NSURLConnection alloc] initWithRequest:request delegate:self];
    • 感谢您的帮助
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多