GCDWebServer是用来做什么的?

10

在iOS8中,使用WKWebView加载本地Web时遇到问题。 有一些建议说我应该使用GCDWebServer。 我已经阅读了 GCDWebServer,但并不真正理解移动应用程序方面的GCDWebServer的用途。

您能给我提供使用此库的任何实际案例吗? 对我的无知感到抱歉。

2个回答

13

这是可以在您的iOS设备上运行的Web服务器,就像您在VPS或专用服务器提供商上运行Web服务器一样。

从您的iOS应用程序运行和托管的这个Web服务器当然只能在您的iOS设备连接到的网络中使用。

这使得您可以在其他计算机上编写客户端程序或脚本,但连接到该网络,以调用您的iOS应用程序(运行GCDWebServer)上传或下载文件,这些文件可以选择存储在您的iOS应用程序的沙盒文档目录中。例如,或者简单地查看由GCDWebServer提供的HTML或其他数据 - 纯文本或JSON。

它与WKWebView没有任何关系。 WKWebView是“简化的WebKit浏览器客户端”,您可以在iOS应用程序中实现它,以查看从其他Web服务器主机提供的网页。

您可以将WKWebView视为GCDWebServer的完全相反。


“在我们编写客户端程序或连接到该网络的其他计算机上运行脚本时非常有用。”这里的客户端程序是什么?您是指同一设备(iPhone或iPad)上的其他iOS应用程序吗? - chipbk10
1
例如,我目前正在编写一个桌面应用程序(在Windows机器上),可以从我的iOS应用程序中检索文件。在这种情况下,桌面应用程序是客户端程序,而运行GCDWebServer的我的iOS应用程序是本地网络中的服务器,我的桌面机器和iOS设备都连接到该服务器。 - Calvin Cheng
iOS应用程序扮演服务器角色真是有趣。 - chipbk10
3
一个程序就是一个程序。如果我们在这个程序中实现Web服务器功能,它就可以充当服务器。如果同一程序具有客户端功能,可以从服务器抓取内容,它也可以充当客户端。我们可以设计我们的程序作为客户端、服务器或客户端和服务器两者兼备。 :-) - Calvin Cheng
嗨,Calvin。我在你的评论中注意到,你提到你正在编写一个桌面应用程序作为GCDWebserver的客户端。我也对创建类似的东西感兴趣,你愿意分享一些代码或者帮忙指点一下方向吗?我以前从未开发过Windows桌面应用程序... - Shayno

2
我们可以在iOS中使用GCDWebServer作为网络拦截器。您可以拦截WKWebView内发生的任何HTTP请求。例如,您可以使用GCDWebServer处理缓存和并行处理昂贵的API请求。您可以立即返回一些缓存响应,并稍后将URL重定向到实际目标。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接