class SDNetworkTool: NSObject {
var netStatus = NetworkStatus()
@objc static let shareNetworkTool = SDNetworkTool()
}
extension SDNetworkTool
{
func HttpClient(urlString:String,requstMethod:HTTPMethod,params:[String:Any],showHud:Bool,successBack:@escaping (_ json:JSON)->(),failBlock:@escaping (()->()),progress:(_ progess:Float)->())
{
... 参数 header 处理
Alamofire.request(urlEnd, method:requstMethod, parameters: paraDic, encoding: URLEncoding.default, headers: header).responseJSON { response in
switch response.result {
case .success(let value):
... 成功
case .failure(let error):
if !self.netStatus.isReachable {//网络不可达
CSTProgressView.showErrorHUD("当前没有网络,请检查您的网络设置")
failBlock();
return
}
debugPrint("-----------------------报错的接口是:"+urlEnd+"报错信息:"+error.localizedDescription)
failBlock();
let errorMD=CSTError()
errorMD.url=baseUrl+urlString
errorMD.para=getJSONStringFromDictionary(dictionary: params as NSDictionary)
errorMD.localizedDescription=error.localizedDescription
CSTNetWorkErrorTool.SendSystemRobot(model:errorMD) {
print("成功上报")
} fail: {
print("失败上报")
}
}
}.downloadProgress { progress in
debugPrint(progress);
}
}
//判断是否有网络
class NetworkStatus {
let networkManager = NetworkReachabilityManager(host: "www.baidu.com")
init() {
startMonitor()
}
func startMonitor() {
self.networkManager?.startListening()
}
var isReachable:Bool{
get{
return (self.networkManager?.isReachable)!
}
}
}
因另外好几个项目都是用的同一个网络库(Alamofire) 版本也是一样,封装请求Tools类也是一个均未出现此问题,客户发过来的视频是一直在loding,app是有网络的不然会直接提示"当前没有网络,请检查您的网络设置",只有这个项目出现了这种情况,网上找了一大圈,也问了很多ios开发的朋友,均未得到有效的解决方案,只能来发帖,看是否人解答了,在线等待专家的出现
可能是客户端短时间内(几乎同时)发起网络请求导致的,请检查逻辑