" + url); Console.WriteLine(">" + NSUrl.FromString(url)-6ren">
gpt4 book ai didi

ios - 无法从 Zend 服务器加载图像

转载 作者:行者123 更新时间:2023-11-29 13:29:34 24 4
gpt4 key购买 nike

我无法使用以下代码从 Zend 服务器加载图像:

Console.WriteLine(">" + url);
Console.WriteLine(">" + NSUrl.FromString(url));
Console.WriteLine(">" + NSData.FromUrl(NSUrl.FromString(url))); // Null on this line

它仅在我尝试从我的服务器加载图像时出现,任何其他来源都可以正常工作。这是我的 Zend Controller 代码:

public function getAction()
{
$file_id = (int)$this->_getParam('id');
$file = $this->fileModel->getById($file_id);

$this->getResponse()
->setHttpResponseCode(200)
->setHeader('Pragma', 'public', true)
->setHeader('Expires', '', true)
->setHeader('Cache-Control', 'public', true)
->setHeader('Cache-Control', 'max-age=3800')
->setHeader('Content-type', $file->CONTENT_TYPE, true)
->setHeader('Content-Length', $file->FILE_SIZE)
->clearBody();
$this->getResponse()->sendHeaders();

echo base64_decode($file->FILEBODY);
exit;
}

图像在浏览器中显示正常。我的代码有什么问题?

PS:我的服务器通过 HTTPS 工作,没有任何签名证书

最佳答案

NSData.FromUrl(在 Objective-C 中为 dataWithContentsOfURL:)对于任何错误都将返回 null

来自 Apple 文档:

Returns nil if the data object could not be created.

所以出了点问题......

PS: my server works throught HTTPS without any signed certificate

有疑问。您可能有一个自签名证书(或者您的服务器不应该满意)。无论如何...

如果在尝试您的 URL 时,Safari(从您的 iPhone/iPad)警告您有关您的网站,那么它属于出现问题类别和 null 值你得到的是正常的。

您可能想尝试 HTTP: 以确保它与其他问题无关(例如网络问题)。

现在如果您*真的想要使用不受信任的 SSL 服务器,您可以使用一些 .NET API,例如WebClient .

 var wc = new WebClient ();
byte[] data = wc.DownloadData (url);

仅此一项就会给您带来异常(不受信任的 SSL 服务器),但 IMO 已经比简单的 null 更好。

接下来,您需要为不受信任的证书提供担保。有几种不同的方法可以做到这一点(有些比其他的要好得多)。我可以在这个 article 中找到它们的相当完整的列表(带源代码) .

关于ios - 无法从 Zend 服务器加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193544/

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