【发布时间】:2010-02-18 13:28:52
【问题描述】:
我正在尝试将来自 Linux (c++ / Qt4.5.x) 服务器守护程序的 png 图像提供给使用 Three20 框架的 iPhone 应用程序 - 特别是我想使用 TTThumbsViewController 视图。
当“GET”请求时,我设法让任何网络浏览器查看图像,并在我的守护程序中返回以下内容:
QTextStream os(socket);
os.setAutoDetectUnicode(true);
QByteArray base64 = array.toBase64();
os << "HTTP/1.1 200 Ok\r\n"
"Host: software.local\r\n"
"\r\n"
"<html>"
"<body>"
"<img src=\"data:image/png;base64," << base64 << "\" />"
"</body>";
其中“array”是 png 的图像数据;我正在输入类似的内容:
http://software.local:8080/test.png
进入浏览器查看图片。
当我尝试在我的照片源类中指定相同的 URL 时
[MockPhoto alloc]
initWithURL:@"http://software.local:8080/test.png"
smallURL:@"http://software.local:8080/test.png"
size:CGSizeMake(480, 320)] autorelease],
...
什么都没有返回或显示?
我的问题是真的 - 如果我将 test.png 放在 Linux PC 上的合适目录中并启动 Web 服务器(apache),然后浏览到“http://software.local/test.png 我看到上面的图像,但图像是没有嵌入到 http 标头中?我真的无法弄清楚标头应该是什么才能获得这种行为。如果我在上面的 iPhone 代码中设置 URL,以便它从 apache 服务器加载 png,我会在 TTThumbsViewController 中看到它。
任何帮助都会很好,或者是更好的方法 - 正如你所见,我只有基本的 http 经验。
【问题讨论】:
-
嗨彼得特,你解决了这个问题吗?我有同样的问题。无法绕过。
-
我很久以前就通过一个全新的解决方案解决了这个问题,并放弃了 Three20 框架的“包袱”。
-
你能分享一下你做了什么吗?我正在努力让这个工作!
-
嗯,恐怕不容易——如果我记得的话,我们最终得到了自己的 iOS 代码(不是 Three20),而且服务器端是由其他人重写的(我认为是 Rails)。除了使用 Three20 框架之外,从服务器的角度来看,我还可以使用 @scootklein 的回答来做一些事情——我把 Three20 框架弄得一团糟;恕我直言,那里的行李太多了。
标签: iphone linux http-headers png three20