gpt4 book ai didi

iphone - setHttpMethod 奇怪的行为

转载 作者:行者123 更新时间:2023-11-28 22:41:02 25 4
gpt4 key购买 nike

我在从服务器下载 xml 文件时遇到了一个奇怪的问题。

我正在尝试使用以下代码获取 schedulist.xml,

- (void) downloadXml:(NSString*)url {

_urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];

[_urlRequest setHTTPMethod:@"GET"];

if(_urlConnection !=NULL)
return NO;

_urlConnection = [[NSURLConnection alloc] initWithRequest:_urlRequest delegate:self startImmediately:YES];

}

问题是,

  1. 当互联网可用时,如果我单击按钮下载 xml,很好。正在下载 Xml。
  2. 现在关闭互联网,如果我再次单击该按钮,它会调用 didReceiveResponse、didReceiveData 和 connectionDidFinishLoading。 仅供引用,我已删除旧的响应数据。

但问题是,如果我使用 [_urlRequest setHTTPMethod:@"POST"]; 它工作正常,即

  1. 可以正常使用互联网
  2. didFailWithError 正在调用

可能是什么问题?

最佳答案

默认NSURLRequest使用协议(protocol)数据来决定是否缓存请求。
例如,如果响应 header (RFC2616) 中存在“缓存控制”或“过期”指令,则它们的值将用于决定是否可以按原样使用缓存响应。
通常只有 GET 请求被缓存,这就是为什么您在 POST 请求中得到 didFailWithError 的原因。 为避免缓存,您可以修复服务器上的 header 或将 NSURLRequestcachePolicy 属性设置为 NSURLRequestReloadIgnoringLocalCacheData

关于iphone - setHttpMethod 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14516549/

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