【发布时间】:2018-03-08 00:37:19
【问题描述】:
运行 AlamoFire 4.5 Swift 4(我的项目)
我只在 iOS 11 中遇到这个错误。
所以我最近开始在工作的 api 端点上不停地收到此错误:
Error Domain=NSPOSIXErrorDomain Code=100 "Protocol error" UserInfo={NSErrorPeerAddressKey=<CFData 0x1c40913f0 [0x1b2c04240]>{length = 16, capacity = 16, bytes = 0x100201bb36aec68a0000000000000000}, _kCFStreamErrorCodeKey=100, _kCFStreamErrorDomainKey=1}
这是我提出请求的要点:
let urlPath = "SOME_PATH"
var params = [String:Any]()
params["app_version"] = version
params["apnsEnabled"] = apnsEnabled
params["ios_version"] = DeviceInfo.getIOSVersion()
params["model_name"] = UIDevice.current.modelName
let request = AFSessionManager.shared.manager.request(urlPath, method: HTTPMethod.get, parameters: params as Parameters, headers: ["requested-domain":ServerDomain.get()!] as HTTPHeaders)
request.responseJSON{ response in
if response.result.error == nil{
//DO STUFF
}else{
//HANDLE ERROR
}
}
编辑:
我最后也只用 URLSession 尝试了这个:
func ping(){
let session = URLSession(configuration: URLSessionConfiguration.default)
let request = URLRequest(url: URL(string: "MY_PING_URL_STRING")!)
let task: URLSessionDataTask = session.dataTask(with: request) { (data, response, error) -> Void in
guard error == nil else {
//Handle Error
return
}
//DO STUFF
}
task.resume()
}
仅使用 URLSession 仍然出现协议错误。
另外,在 MacOS High Sierra 上的 Safari 中出现此错误。
【问题讨论】:
-
@DávidPásztor 标题很好,GET 没有正文。
-
@DávidPásztor 也正如我在我的问题中所说,在为标题传递 nil 时也会出错。
标签: swift alamofire nsurlsession