关闭 wifi 时 GDCWebserver serverURL 为空
GDCWebserver serverURL is null when wifi is turned off
我不是从其他网络访问。我只是想为混合应用程序提供文件。
当我使用以下代码连接到 wifi 网络时,运行 基本服务器会按预期工作:
let webServer = GCDWebServer()
webServer.addDefaultHandlerForMethod("GET", requestClass: GCDWebServerRequest.self, processBlock: {request in
return GCDWebServerDataResponse(HTML:"<html><body><p>Hello World</p></body></html>")
})
webServer.startWithPort(8080, bonjourName: "GCD Web Server")
print("Visit \(webServer.serverURL) in your web browser")
日志:
Visit http://192.168.1.132:8080/ in your web browser
当我关闭 wifi 并启动应用程序和服务器时,我得到:
GCDWebServer started on port 8080 and reachable at (null)
serverUrl 为空,但本地主机正常工作:
localhost://
还提供了提供的 bonjour 服务 url
func webServerDidCompleteBonjourRegistration(server: GCDWebServer!) {
if(self.serverURL == nil){
self.serverURL=self.webServer!.bonjourServerURL
print(self.serverURL)
self.initWebView()
}
}
在关闭 wifi 的情况下在本地获取东西 运行。
这是预期的行为,尽管文档对此可能更清楚。
- (NSURL*)serverURL
只是一种方便的方法,return 是您设备的主 IP 地址附加服务器端口。如果您的设备未连接到网络,它将 return nil
。参见 GCDWebServerGetPrimaryIPAddress()
.
的实现
如果此方法 returns returns 为零,则仅表示服务器不是 运行 或者它似乎没有面向外部的 IP,即它只是可通过 localhost
.
访问
使用 URL http://127.0.0.1:8080/
是我在不使用 wifi 时唯一有效的选择。
无论连接类型(wifi 或 3g/4g)如何,尝试启动绑定到本地主机的服务器
do {
try webServer.start(options: [
"Port": 8080,
"BindToLocalhost": true
])
} catch {
// handle error
}
此外,如果 Arbitrary Loads
被禁用(可能),请将“localhost”添加到 info.plist
中的 NSExceptionDomains
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
我不是从其他网络访问。我只是想为混合应用程序提供文件。
当我使用以下代码连接到 wifi 网络时,运行 基本服务器会按预期工作:
let webServer = GCDWebServer()
webServer.addDefaultHandlerForMethod("GET", requestClass: GCDWebServerRequest.self, processBlock: {request in
return GCDWebServerDataResponse(HTML:"<html><body><p>Hello World</p></body></html>")
})
webServer.startWithPort(8080, bonjourName: "GCD Web Server")
print("Visit \(webServer.serverURL) in your web browser")
日志:
Visit http://192.168.1.132:8080/ in your web browser
当我关闭 wifi 并启动应用程序和服务器时,我得到:
GCDWebServer started on port 8080 and reachable at (null)
serverUrl 为空,但本地主机正常工作:
localhost://
还提供了提供的 bonjour 服务 url
func webServerDidCompleteBonjourRegistration(server: GCDWebServer!) {
if(self.serverURL == nil){
self.serverURL=self.webServer!.bonjourServerURL
print(self.serverURL)
self.initWebView()
}
}
在关闭 wifi 的情况下在本地获取东西 运行。
这是预期的行为,尽管文档对此可能更清楚。
- (NSURL*)serverURL
只是一种方便的方法,return 是您设备的主 IP 地址附加服务器端口。如果您的设备未连接到网络,它将 return nil
。参见 GCDWebServerGetPrimaryIPAddress()
.
如果此方法 returns returns 为零,则仅表示服务器不是 运行 或者它似乎没有面向外部的 IP,即它只是可通过 localhost
.
使用 URL http://127.0.0.1:8080/
是我在不使用 wifi 时唯一有效的选择。
无论连接类型(wifi 或 3g/4g)如何,尝试启动绑定到本地主机的服务器
do {
try webServer.start(options: [
"Port": 8080,
"BindToLocalhost": true
])
} catch {
// handle error
}
此外,如果 Arbitrary Loads
被禁用(可能),请将“localhost”添加到 info.plist
NSExceptionDomains
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>