gpt4 book ai didi

swift - Alamofire 请求发送两次

转载 作者:行者123 更新时间:2023-11-28 07:21:51 26 4
gpt4 key购买 nike

我是alamofire请求,发现请求发送了两次。这是一个 alamofire 错误吗?

我尝试设置断点,但它没有被调用两次,也没有按钮调用此函数两次或触发两次。

这是我的代码

    ARSLineProgress.show()
guard let url = URL(string: "https://laghmat.kbmediawebites.com/api/rest/account") else {return}
let headers = ["X-Oc-Merchant-Id": MerchantId, "X-Oc-Session": K_Defaults.string(forKey: "sessionID"),"ACCEPT":"application/json"]
let params = [
"firstname": firstName,
"lastname": lastName,
"email": email,
"telephone": phone
] as! [String : String]
Alamofire.request(url, method: .put, parameters: params,encoding: JSONEncoding.default, headers: headers as! HTTPHeaders).responseJSON {
response in
switch response.result {
case .success:
print(response)
guard let data = response.data else { return }
do {
let value = try JSONDecoder().decode(GeneralResponse.self, from: data)
if value.success == 1 {
ARSLineProgress.showSuccess()
var user = GlobalHelpers.getUser()
user?.firstname = firstName
user?.lastname = lastName
user?.telephone = phone
user?.email = email
GlobalHelpers.setUser(user)
self.dismiss(animated: true, completion: nil)
} else {
ARSLineProgress.showFail()
self.alert(msg: LanguageManger.localize(word: "serverError"))
}
} catch let error {
ARSLineProgress.showFail()
self.alert(msg: LanguageManger.localize(word: "serverError"))
print(error)
}

break
case .failure(let error):
ARSLineProgress.showFail()
self.alert(msg: LanguageManger.localize(word: "serverError"))
print(error)
}
}

最佳答案

好吧,我建议您在发出请求时锁定 View 中的所有按钮。

for viewW in view.subviews
{
if let buttonV = viewW as? UIButton
{
buttonV.isUserInteractionEnabled = false
}
}

显然,你必须在开始时锁定并在结束时解锁。

如果不行,就在这行打断点

switch response.result {

第一次,你会看到你没有状态码,因为服务器还没有响应,然后按下一步,你会看到状态码,因为服务器已经响应你了。

这并不意味着请求被发出了两次,我认为这是因为握手正在发生。

关于swift - Alamofire 请求发送两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57795416/

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