gpt4 book ai didi

iphone - ASIHTTPRequest,请求发送了两次

转载 作者:可可西里 更新时间:2023-11-01 05:01:18 25 4
gpt4 key购买 nike

我刚开始为 iO 使用 ASIHTTPRequest,我遇到了一个小问题。所有请求都被发送到服务器两次,即使我只从库中得到一个对我的委托(delegate)方法的回复。

同步和异步请求都有这个问题。我将 Xcode 4 与 ARC 一起使用,但通过添加 -fno-objc-arc 作为编译器标志为 ASIHTTPRequest 禁用了它。

知道哪里出了问题吗?

代码:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];

NSError *error = [request error];
if (!error) {
}

最佳答案

这也让我很痛苦。我使用 GET 请求来验证服务器上的多用途优惠券代码。当我们为兑换代码添加速率限制时,一些客户报告说在他们应该达到的限额之前达到了限额。事实证明,一些验证触发了两次兑换。

您的请求正在使用 GET 方法。

使用 GET 时的默认行为是允许持久连接 (the Keep-Alive HTTP header)。

当使用持久连接时,如果网络上的某些东西看起来不稳定(这是一个技术术语)而不是请求失败,您的 GET 请求可能会被重新传输。这通常是可取的,因为 GET 请求通常不会对服务器产生任何副作用。

另一方面,POST 或 PUT 请求默认不使用持久连接并且不会重新传输您的操作,这很可能是信用卡购买或其他具有重大副作用的操作。

如果您希望防止您的 ASIHTTPRequest GET 有时发送 2 个或更多服务器请求(由于您无法控制的网络问题),您可以简单地设置此标志:

request.shouldAttemptPersistentConnection = NO;

这应该会处理服务器上的虚假 GET 副本。

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

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