gpt4 book ai didi

swift - RxAlamofire 源代码中实际的 API 调用在哪里?

转载 作者:行者123 更新时间:2023-11-30 10:34:48 26 4
gpt4 key购买 nike

我正在尝试找出 API 调用中的数据来自何处。具体来说,我想知道req.user在哪里据我所知,没有参数被传递到 API 调用中。

这是服务器端代码(JS):

let APIHandler = (req, res) = > {
if (req.user) {
latitude = req.user.location.latitude
longitude = req.user.location.longitude
}
}

这是客户端代码(Swift):

 let strURLTo = SERVICE.BASE_URL + apiName + limit
let headers = AuthorizationHeader.getAuthHeader(staticToken: false)

var urlComponents = URLComponents(string: strURLTo)
urlComponents?.queryItems = [URLQueryItem(name: "offset", value: String(offset)),
URLQueryItem(name: "limit", value: String(limit))]

let strURL = urlComponents?.url

RxAlamofire.requestJSON(.get,strURL!,parameters:[:],headers:headers)

.debug()

.subscribe(onNext: {(HeaderResponse, bodyResponse) in

if let dict = bodyResponse as? [String: AnyObject] {
if let respDict: [String: Any] = JSON(dict).dictionaryObject {
let response = ResponseModel.init(statusCode: HeaderResponse.statusCode, response:respDict)
self.subject_response.onNext(response)
}
}

}, onError: { (error) in
self.subject_response.onError(error)
})

.disposed(by: disposeBag)

最后是 RxAlamofire.requestJson定义:

public func requestJSON(_ method: Alamofire.HTTPMethod,
_ url: URLConvertible,
parameters: [String: Any]? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: [String: String]? = nil)
-> Observable<(HTTPURLResponse, Any)>
{
return SessionManager.default.rx.responseJSON(
method,
url,
parameters: parameters,
encoding: encoding,
headers: headers
)
}

我尝试的是通过 RxAlamofire.requestJSON 进行追踪一步一步地运行函数,但我没有看到实际 API 调用发生的任何地方(对我来说,它似乎只是概述了它期望/返回的类型)。此外,RxAlamofire.requestJSON(.get,strURL!,parameters:[:],headers:headers) 中没有参数。打电话。

最佳答案

实际的调用是在这一行中进行的(为了清楚起见,已将其分散在多行中):

return SessionManager.default.rx.responseJSON(
method,
url,
parameters: parameters,
encoding: encoding,
headers: headers
)

此处设置参数:

var urlComponents = URLComponents(string: strURLTo)
urlComponents?.queryItems = [URLQueryItem(name: "offset", value: String(offset)),
URLQueryItem(name: "limit", value: String(limit))]

但是,我也没有看到 user 被设置,所以也许它发生在这个答案顶部的 API 函数中?

关于swift - RxAlamofire 源代码中实际的 API 调用在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com