使用Swift 4 ping网站或IP地址(或检查网站是否在线)吗? [英] Ping a Website or an IP Address (or Check if a Website is Online) using Swift 4?
问题描述
从昨天开始,我一直在寻找一种简单的方法来对网站进行ping操作;检查是否在Swift中返回200.
I have been searching since yesterday for a simpler solution to just ping a website & check if it returns 200 in Swift.
但是我发现的只是目标C中的解决方案.
But all I'm finding are solutions in Objective C.
在Swift中,我找到了一些答案,例如
In Swift, I found some answers like
func pingHost(_ fullURL: String) {
let url = URL(string: fullURL)
let task = URLSession.shared.dataTask(with: url!) { _, response, _ in
if let httpResponse = response as? HTTPURLResponse {
print(httpResponse.statusCode)
}
}
task.resume()
}
但是当我从其他功能调用它时,
But when I call it from some other function like
self.pingHost("https://www.google.com")
它会给出
2018-09-26 12:46:34.076938+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect()-> No of tries: 1
2018-09-26 12:46:35.082274+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect()-> No of tries: 2
2018-09-26 12:46:36.083497+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect()-> No of tries: 3
2018-09-26 12:46:37.083964+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect() failed path:/var/run/mDNSResponder Socket:5 Err:-1 Errno:1 Operation not permitted
2018-09-26 12:46:37.084497+0530 Net Alert[1608:52682] [] nw_resolver_create_dns_service_locked [C1] DNSServiceCreateDelegateConnection failed: ServiceNotRunning(-65563)
2018-09-26 12:46:37.087264+0530 Net Alert[1608:52682] TIC TCP Conn Failed [1:0x600003706e80]: 10:-72000 Err(-65563)
2018-09-26 12:46:37.088841+0530 Net Alert[1608:52673] Task <2B08658D-5DFA-48E9-A306-A47ED130DD1F>.<1> HTTP load failed (error code: -1003 [10:-72000])
2018-09-26 12:46:37.088990+0530 Net Alert[1608:52673] Task <2B08658D-5DFA-48E9-A306-A47ED130DD1F>.<1> finished with error - code: -1003
如何仅在Swift 4&中ping一下?检查是否返回200?
How do I just simply ping in Swift 4 & check if it returns 200?
推荐答案
我认为问题很简单:您启用了 App Sandbox ,但未选中 传出连接.
I guess the problem is easy: You enabled App Sandbox but didn't check Outgoing Connections.
您的pingHost
方法如何-完全正确.因此,我认为唯一的问题在于应用程序沙箱设置.
What about your pingHost
method - it's completely correct. So I think only problem is in App Sandbox settings.
这篇关于使用Swift 4 ping网站或IP地址(或检查网站是否在线)吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!