gpt4 book ai didi

ios - 如何在 swift4 中使用 Rxalamofire 发送 URL 请求

转载 作者:行者123 更新时间:2023-11-28 23:34:23 28 4
gpt4 key购买 nike

实际上我是 iOS 的新手,现在我的任务是使用 Rxalamofire 发送 URL 请求。我完全不知道 Rxalamofire。以前我只使用 alamofire。以前我只使用alamofire。现在我也像以前一样发送url请求,但后来我发现Rxalamofire比alamofire好得多。不幸的是我无法发送URL请求。所以,谁能告诉我逐步过程。提前致谢。

 postParameters = ["username":mailid,"password":password]

Alamofire.request(Constants.loginapi, method: .post, parameters: postParameters, encoding: URLEncoding.default, headers: nil).responseJSON { response in
switch response.result {
case .success:
print(response)
case .failure(let error):
print(error)
}

}

最佳答案

我看到您之前的帖子与 MVVM/RxSwift 作斗争。

您可以在这里找到一个可以帮助您完成以下任务的项目 -

  1. RXSwift + MVVM
  2. Rxswift + Alamofire

https://github.com/saurabh-360/RxAlamofireDemo

对于这个问题,您可以通过标准方式发送请求,

但是在使用 RXswift API 时,使用 Observable 模式是更好的方法,即观察数据流。

下面的代码可以帮助您入门。

func loginUser() -> Observable<Any>? {

return Observable<Any>.create({observer in
/**
parameters or additional headers we can bind with the url request
the case is standard here like we do in URLSession requests
consider this example to incorporate the same
https://stackoverflow.com/a/40608923/4549304
*/
let parameters:[String:String] = ["username":"Your username value here",
"password":"Your password value here"]

/**
There are multiple ways to request data from the servers using
Default ALamofire methods
I am using Alamofire.request(String) method here for the same.


We Can also use
request(_ urlRequest: URLRequestConvertible)
method in case we want to make a post request
with additional headers and parameters

*/

Alamofire.request("https://reqres.in/api/login", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
.response { response in
if response.response?.statusCode == 400 {
print("authorisation error")

// you need to exit the request here since there was error and
// no parsing is needed further for the response
// you can also send and error using the observer.OnError(Error)
return observer.onCompleted()
}

// convert data to our model and update the local variable
guard let responseData = response.data else {
return observer.onCompleted()
}
do {
let model = try JSONDecoder().decode(YourModel.self, from: responseData)
observer.onNext(model)
observer.onCompleted()
}catch {
observer.onError(error)
observer.onCompleted()
print("some thing went wrong.")
}
}

return Disposables.create();
})
}

关于ios - 如何在 swift4 中使用 Rxalamofire 发送 URL 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55496192/

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