错误域= 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-TypeHTTP字段结尾。

但是,它可以在macOS 10.12而不是12.11中使用,因此 。

希望能帮助到你。


形成您的示例代码,我想这encoding: JSONEncoding.default是错误的。由于

,因此严格/不严格的网络组件将拒绝/不理解它。

您的目标是Accept: application/json在请求标头中设置的,但是如果您确定响应正文类型,则不需要设置目标。

以上是 错误域= NSPOSIXErrorDomain代码= 100“协议错误” 的全部内容, 来源链接: utcz.com/qa/414487.html

回到顶部