无法使用Alamofire获取数据?

我想从我的Django后端获取iOS应用程序中的数据。 在postman中,如果我对以下URL http://127.0.0.1:8000/api/places/categories执行GET请求,参数是Key:"Authorization" Value: "Bearer access_token". 我得到一个JSON响应。

在我的应用程序内,我正在Alamofire的帮助下做这样的事情:

 let access_token = "123" let headers = ["Authorization": "Bearer" + access_token] Alamofire.request(self.categoriesUrl, method: .get, parameters:nil,encoding: JSONEncoding.default,headers: headers).response { response in print("Request: \(response.request)") print("Response: \(response.response)") print("Error: \(response.error)") if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { print("Data: \(utf8Text)") } } 

我收到错误说没有提供授权证书 。 我明白这一点,它要求我传递参数,但参数只需要一个令牌。 所以我做这样的事情:

 let access_token = "123" let params = ["Authorization": "Bearer" + access_token] Alamofire.request(self.categoriesUrl, method: .get, parameters:params,encoding: JSONEncoding.default,headers: nil).response { response in print("Request: \(response.request)") print("Response: \(response.response)") print("Error: \(response.error)") if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { print("Data: \(utf8Text)") } } 

它等待了一段时间,但未能获取与以下错误的数据:

 Response: nil Error: Optional(Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x61800004b0d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://127.0.0.1:8000/api/places/categories/, NSErrorFailingURLKey=http://127.0.0.1:8000/api/places/categories/, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}) Data: 

EDIT1: 发布人屏幕

这是很简单的修复,我猜你正在使用iOS10或更高版本的操作系统。 因此,不要调用http ,而只需调用https ,这意味着在iOS10及更高版本中,API调用协议已被更改为http

你在这里有一个错字:

let params = ["Authorization": "Bearer" + access_token]

持票人之后你缺less一个空间。