gpt4 book ai didi

ios - 如何取消 Objective-C 中的异步 HTTP 请求?

转载 作者:可可西里 更新时间:2023-11-01 06:07:23 24 4
gpt4 key购买 nike

我正在尝试添加在用户离开 View 或发起新请求时取消所有当前异步请求的功能。我知道将代码放在哪里,但我不太确定如何实际取消请求。根据我的研究,我知道 NSURLConnection 有一个 cancel 方法,但我使用异步 block 调用我的请求。以下是我的代码 - 非常感谢任何帮助!

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setHTTPMethod:@"GET"];
[request setURL:[NSURL URLWithString:[kEndpointEvents stringByAppendingString:arguments]]];

//Send an asynchronous request so it doesn't pause the main thread
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

NSHTTPURLResponse *responseCode = (NSHTTPURLResponse *)response;

//Do stuff

}];

最佳答案

使用便捷方法 +sendAsynchronousRequest:queue:completionHandler+sendSynchronousRequest:returningResponse:error: 时,无法取消正在进行的请求。

如果您想要取消,请在委托(delegate) NSURLConnectionDataDelegate 中实现方法,并从回调中自行构建数据。这样做将使您能够控制连接对象,并且您可以随时对其调用 -cancel

关于ios - 如何取消 Objective-C 中的异步 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793860/

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