gpt4 book ai didi

ios - "dataTaskWithRequest"当只需要一个请求时,两次请求NSMutableRequest

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:44 25 4
gpt4 key购买 nike

我有一个安全的 webView,它显示客户加载他的钱包。我传递安全信息 MPIN(如一次性密码)。有问题

@IBOutlet weak var loading: UIActivityIndicatorView!

@IBOutlet var lblLoading: UILabel!


@IBOutlet weak var mob_webview: UIWebView!

override func viewDidLoad()
{
super.viewDidLoad()
mob_webview.hidden = true
mob_webview.delegate=self
cmmn.createDatabase()
linkgot = cmmn.geturl()

link="http://*****************************************.jsp?"

let request = NSMutableURLRequest(URL: NSURL(string: link)!)
request.HTTPMethod = "POST"
let postString = "recharge_type=\(_catcode)&amount=\(_amountfiled_got)&mobileNo=\(cmmn.getPhoneNumber())&prePostLan=\(prePostLan)&stdCode=\(_stdCode)&accNo=\(accNo)&deduct_frm=B&rcMobileNum=\(_numberfiled_got)&mobOperator=\(_merch_code)&operator=\(_operatr)&rcType=\(_rec_type)&mpin=\(_mpin)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in

if error != nil {
print("error=\(error)")
return
}

print("response = \(response)")

let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
mob_webview.loadRequest(request)







// Do any additional setup after loading the view.
}
func webViewDidFinishLoad(webView_Pages: UIWebView)
{

mob_webview.hidden = false
loading.hidden = true
lblLoading.hidden=true
print("OK")

}

服务器日志中的响应: enter image description here enter image description here

在服务器中,如果用户输错了 3 次 MPIN,他就会被阻止。这是根据服务器中错误的 MPIN 命中数来完成的。出于某种原因,我的 WebView 发出了两次请求(即调用两次加载请求的链接),即使它只加载了一次。假设如果客户输入错误的 MPIN 并加载 WebView ,链接被调用两次他失去了 2 次机会输入正确的 MPIN。我们APP的android版本可以正常使用类似的请求。有什么原因吗?

最佳答案

阅读您的问题后,我浏览了 apple 引用文档。它说 webViewDidFinishLoad 在 webview 中加载每个帧后被调用。 Here is document

webViewDidFinishLoad: Sent after a web view finishes loading a frame.

请与服务器确认一次运行发出了多少请求。它是 2 或 1。还想知道代码中的打印语句执行了多少次 print("response =\(response)")。因为我不同意这种说法。

在您的问题中发现您调用了 NSURLSession dataTaskWithRequest 并且还在 Web View 中加载了请求。两次调用同一事物也可能会出现问题。如果你想在 webview 中打开请求,请不要使用 NSURLSession 任务请求。 通过注释 task.resume() 来运行它。

关于ios - "dataTaskWithRequest"当只需要一个请求时,两次请求NSMutableRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42344596/

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