如何快速将互联网连接类型发送到服务器:Alamofire [关闭]

Posted

技术标签:

【中文标题】如何快速将互联网连接类型发送到服务器:Alamofire [关闭]【英文标题】:How to send internet connection type to server in swift: Alamofire [closed] 【发布时间】:2018-06-15 11:18:09 【问题描述】:

如何将互联网连接类型分配给字符串变量。请有人帮助我。这是我的代码

reachabilityManager?.listener =  checkConection in
            switch checkConection 
            case .reachable(.ethernetOrWiFi):
                print("The network is reachable over the WiFi connection")
                break
            case .notReachable:
                print("internet is not reachable")
                break
            case .reachable(.wwan):
                print("internet is not working with status \(checkConection)")
                break
            case .unknown:
                print("internet status is unknown")
                break
            
            print("Data",checkConection)
        
    
    reachabilityManager?.startListening()

我必须将该字符串参数发送到服务器。

【问题讨论】:

什么是reachabilityManager?它是来自图书馆还是您声明了它。如果你声明了它,你应该包含checkConnection类型的声明。 @DávidPásztor 它来自图书馆 那你应该说明你正在使用什么库,否则很难提供帮助。 对不起@DávidPásztor letreachabilityManager = NetworkReachabilityManager() 是从 globle 中删除的。 我正在使用 Alamofire 【参考方案1】:

似乎checkConnection 有一个自定义的 enum 类型的 Alamofire,NetworkReachabilityStatus (Alamofire source code),它没有原始值,也不符合 CustomStringConvertible

要从enum 中获取String 值,可以使其符合CustomStringConvertible,然后使用它的description 属性。只需确保对 ConnectionType 也执行此操作,这是另一个 enum,它是 NetworkReachabilityStatus.Reachable 的关联值。

extension ConnectionType: CustomStringConvertible 
    public var description: String 
        switch self 
        case .EthernetOrWiFi:
            return "Ethernet of WiFi"
        case .WWAN:
            return "WWAN"
        
    


extension NetworkReachabilityStatus: CustomStringConvertible 
    public var description: String 
        switch self 
        case .NotReachable:
            return "Not Reachable"
        case .Unknown:
            return "Unknown"
        case let .Reachable(connectionType):
            return "Reachable through \(connectionType.description)"
        
    

然后在你的代码中使用它:

var reachabilityStatusString: NetworkReachabilityStatus?

reachabilityManager?.listener =  checkConection in
    reachabilityStatusString = checkConnection.description
    print("Reachability status: \(reachabilityStatusString ?? "Unknown")")

reachabilityManager?.startListening()

【讨论】:

非常感谢@David,它的工作原理

以上是关于如何快速将互联网连接类型发送到服务器:Alamofire [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

只要互联网连接可用,就将数据发送到服务器 iOS

网络游戏客户端如何能够如此快速地通过互联网交换数据?

如何在 Swift 中将 JSON 转换为数据类型?

向 Trains 服务器报告的弹性如何?

将 Highcharts 导出为 PDF(使用 javascript 和本地服务器 - 没有互联网连接)

如何使用java服务器将消息发送到特定的websocket连接