Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法从Zend服务器加载映像_Ios_Zend Framework_Https_Xamarin.ios_Nsdata - Fatal编程技术网

Ios 无法从Zend服务器加载映像

Ios 无法从Zend服务器加载映像,ios,zend-framework,https,xamarin.ios,nsdata,Ios,Zend Framework,Https,Xamarin.ios,Nsdata,我无法使用以下代码从Zend server加载图像: Console.WriteLine(">" + url); Console.WriteLine(">" + NSUrl.FromString(url)); Console.WriteLine(">" + NSData.FromUrl(NSUrl.FromString(url))); // Null on this line 只有当我试图从我的服务器加载映像时,任何其他源都可以正常工作。以下是我的Zend控制器代码: pub

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

Console.WriteLine(">" + url);
Console.WriteLine(">" + NSUrl.FromString(url));
Console.WriteLine(">" + NSData.FromUrl(NSUrl.FromString(url))); // Null on this line
只有当我试图从我的服务器加载映像时,任何其他源都可以正常工作。以下是我的Zend控制器代码:

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;
}
图像在浏览器中显示良好。我的代码怎么了


备注:我的服务器通过HTTPS工作,没有任何签名证书。对于任何错误,FromUrl(在Objective-C中)将返回
null

来自Apple文档:

如果无法创建数据对象,则返回nil

所以出了点问题

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

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

如果在尝试你的URL时,Safari(来自你的iPhone/iPad)警告你关于你的站点,那么它属于出错类别,你得到的
null
值是正常的

您可能希望尝试HTTP:以确保它与其他内容无关(例如,网络问题)

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

仅此一项就可以得到一个异常(不受信任的SSL服务器),但在我看来,这已经比简单的
null
好得多了


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

NSData.FromUrl
(在Objective-C中)将返回
null
,以查找任何错误

来自Apple文档:

如果无法创建数据对象,则返回nil

所以出了点问题

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

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

如果在尝试你的URL时,Safari(来自你的iPhone/iPad)警告你关于你的站点,那么它属于出错类别,你得到的
null
值是正常的

您可能希望尝试HTTP:以确保它与其他内容无关(例如,网络问题)

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

仅此一项就可以得到一个异常(不受信任的SSL服务器),但在我看来,这已经比简单的
null
好得多了

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

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