Luc*_*hoG 15 ios swift alamofire
我试图使用.get方法使用Alamofire调用服务.请求没有任何特殊的参数,只有Authorization标头.
我在这里有点生气,因为当我使用相同的URL和授权令牌在postman上运行它时请求工作正常,但是当我用Alamofire运行我的应用程序代码时它返回此错误:
错误域= NSPOSIXErrorDomain代码= 100"协议错误"UserInfo = {NSErrorPeerAddressKey = {length = 16,capacity = 16,bytes = 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
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法将非常感激或指出我正确的方向:)
lon*_*kai 10
我在基础课的Cocoa中得到了与你完全相同的错误URLSession.经过几个小时的调试,问题出在HTTP请求体中.
您应该尝试转储HTTP请求/响应正文以查看是否存在某些格式错误的字段.例如,Content-Length和Content-Type是正确的或丢失?根据我的经验,如果这些必需(基本)标头格式不正确,它可能无法工作,具体取决于您的操作系统或其他中间网络接受(例如代理,网关,服务器等)
我的错是错误放置方法中的函数参数URLRequest.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type"),最终导致错误的Content-TypeHTTP字段.
但是,它适用于macOS 10.12但不适用于12.11,因此您应该确保您的HTTP请求主体没有格式错误.
希望能帮助到你.
形成你的示例代码,我猜错了encoding: JSONEncoding.default.由于HTTP GET方法没有正文,因此严格/不健全的网络组件会拒绝/不理解它.
您的目标是Accept: application/json在请求标头中设置的内容,但如果您确定响应正文类型,则不需要它.
| 归档时间: |
|
| 查看次数: |
10568 次 |
| 最近记录: |