swift Alamofire get 请求出现 Error Domain=NSURLErrorDomain Code=-1001 "请求超时。" UserInfo={NSUnderlyingErro
Error Domain=NSURLErrorDomain Code=-1001 "请求超时。" UserInfo={NSUnderlyingError=0x1c0a48310 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}
这个原因,我查了半天,网上都是设置超时时间的帖子,但是,这个get请求,并没有超时就返回这个错误了,后来发现是请求方法中用的和post一样的encoding:JSONEncoding.default;下面介绍一下encoding的使用场景
- JSONEncoding.default 是放在HttpBody内的,比如post请求
- URLEncoding.default 在GET中是拼接地址的, 比如get请求
- URLEncoding(destination: .methodDependent) 是自定义的URLEncoding,methodDependent的值如果是在GET 、HEAD 、DELETE中就是拼接地址的。其他方法方式是放在httpBody内的。
- URLEncoding(destination: .httpbody)是放在httpbody内的
于是我用URLEncoding.default替换了之前的JSONEncoding.default就好了
Alamofire.request(url, method: .get, parameters: nil, encoding:JSONEncoding.default, headers: ["Content-Type":"application/json"]).responseJSON { (response) in }
Alamofire.request(url, method: .get, parameters: nil, encoding:URLEncoding.default, headers: ["Content-Type":"application/json"]).responseJSON { (response) in }
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2021/05/31 10:41