错误域= NSPOSIXErrorDomain代码= 100“协议错误”
我正在尝试使用.get方法使用Alamofire调用服务。该请求没有什么特别的,没有任何参数,只是一个Authorization标头。
我在这里有点生气,因为当我在具有相同URL和授权令牌的邮递员上运行请求时,请求工作正常,但是当我使用Alamofire运行应用程序代码时,它将返回此错误:
错误域= NSPOSIXErrorDomain代码= 100“协议错误” UserInfo = {NSErrorPeerAddressKey =
{长度= 16,容量= 16,字节= 0x100201bbd83ad0b10000000000000000},_
kCFStreamErrorCodeKey = 100,_kCFStreamErrorDomainKey = 1}
我在用:
Alamofire.request("https://myserverURL", method: .get, parameters: [:], encoding: JSONEncoding.default, headers: ["Authorization":"myToken"]) .responseJSON {response in
guard response.result.error == nil else {
//HERE IS WHERE IS GOING IN WITH THE ERROR
}
}
任何想法将不胜感激或指向我正确的方向:)
回答:
在基础课上,我在可可中遇到了与您完全相同的错误URLSession
。经过数小时的调试,问题出在HTTP请求正文中。
您实际上应该尝试 以查看是否存在一些格式错误的字段。例如,Content-Length
并且Content-
Type被正确或丢失?以我的经验,如果这些必需的(基本)标头格式不正确,则
具体取决于您的操作系统或其他中间网络接受(例如,代理,网关,服务器等)
我的错是方法中的函数参数放错URLRequest.addValue("application/x-www-form-urlencoded",
forHTTPHeaderField: "Content-Type")了位置,结果以错误的Content-Type
HTTP字段结尾。
但是,它可以在macOS 10.12而不是12.11中使用,因此 。
希望能帮助到你。
形成您的示例代码,我想这encoding: JSONEncoding.default
是错误的。由于
,因此严格/不严格的网络组件将拒绝/不理解它。
您的目标是Accept: application/json
在请求标头中设置的,但是如果您确定响应正文类型,则不需要设置目标。
以上是 错误域= NSPOSIXErrorDomain代码= 100“协议错误” 的全部内容, 来源链接: utcz.com/qa/414487.html