【发布时间】:2015-01-06 05:43:04
【问题描述】:
我现在正在测试环境中尝试我的应用程序,该应用程序具有在 web 视图中打开 URL 的功能,但现在测试,生产数据库中的文件 URL 来自亚马逊并具有以下格式:
self.url = @"https://media.akdemia.com.s3.amazonaws.com/production//uploads/report_notification/report/3827/Corte_de_Notas_de-QUINTO_A_O_DE_CIENCIAS_A.pdf?AWSAccessKeyId=AKIAI2R6DMWPFKJPDVWQ&Signature=wwq2kCTVsOlA/Sc/xIT108XF8/0%3D&Expires=1447112397"
我无法通过以下方式打开它:
NSURL *myUrl = [NSURL URLWithString:self.url];
NSURLRequest *myRequest = [NSURLRequest requestWithURL:myUrl];
[self.webView loadRequest:myRequest];
Isn't a common url 和控制台打印这个错误:
NSURLConnection/CFURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9843)
额外信息
在我的应用程序中,我有一个报告列表,当它向 API 请求每个报告的 URL 时,它会生成一个 URL 列表。
如果我请求来自控制台的 URL 生成相同的 URL,但每个 URL 的过期编号不同,并且所有这些 URL 都可以正常工作,而如果我打印 API 为应用程序返回的 JSON,我可以看到所有 URL (无论属于哪个报告)都具有相同的过期编号。我不知道这是否会影响 URL,然后它就不起作用了。
【问题讨论】:
-
我刚刚将您的网址粘贴到浏览器中,由于防火墙的原因,加载此类网址时会显示隐私错误。检查您是否有权加载此网址。还要确保 url 正确,并且能够加载到模拟器/设备的 Safari 应用程序中。
-
我现在无法更改它,即使我再次写@Kampai
-
无法理解你的意思,能否详细解释一下?
-
我必须检查 URL 以及是否有权限,但我现在不能。当我这样做时,我会写你的评论,谢谢@Kampai
-
我不确定是否是导致问题的
expires令牌。我从this post 看到,Amazon S3 中带有 '.' 的“桶”存在问题。提供的一种解决方案是稍微重构 URL:所以https://media.akdemia.com.s3.amazonaws.com/production/....变为https://s3.amazonaws.com/media.akdemia.com/production/....。如果我进行了更改,那么我将克服 9843 错误。但随后得到一个未找到文档的错误(可能是因为它已过期?)。
标签: ios uiwebview nsurlconnection