ios - POST 请求未考虑 NSMutableURLRequest 超时间隔

标签 ios objective-c post nsurlconnection

我有以下问题。在使用 HTTP 方法 POSTNSMutableURLRequest 上,为连接设置的超时间隔将被忽略。如果互联网连接出现问题(错误的代理、错误的 dns),url 请求会在大约 2-4 分钟后失败,但不会出现 NSLocalizedDescription = "timed out";

NSUnderlyingError = Error Domain=kCFErrorDomainCFNetwork Code=-1001 UserInfo=0x139580 "The request timed out.

如果使用的http 方法是GET,它工作正常。 通过 https 连接是异步

    NSURL *url = [NSURL URLWithString:urlString];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    

    [request setTimeoutInterval:10];

    //Set the request method to post
    [request setHTTPMethod:@"POST"];

    if (body != nil) {
        [request setHTTPBody:body];
    }

    // Add general parameters to the request
    if (authorization){
        [request addValue: authorization forHTTPHeaderField:@"Authorization"];
    }
    [request addValue: WS_HOST forHTTPHeaderField:@"Host"];
    [request addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];

    [[NSURLCache sharedURLCache] setDiskCapacity:0];

    [self addToQueueRequest:request withDelegate:delegate];

'

最佳答案

根据 Apple 开发者论坛上的帖子,POST 的最小超时间隔为 240 秒。任何比该时间短的超时间隔都将被忽略。

如果您需要更短的超时间隔,请使用异步请求和计时器,并根据需要在 NSURLConnection 上调用取消。

线程链接:here

关于ios - POST 请求未考虑 NSMutableURLRequest 超时间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466389/

相关文章:

ios - 当设备旋转处于 .PortraitUpsideDown 时,我永远不会收到通知

ios - 如何生成 JWT token 苹果连接 iOS

java - 通信两个 servlet 时出现内部服务器错误

javascript - 不使用 GET 将值传递到 iframe

java - Selenium 无法启动 session ,因为 url 不支持 http post

ios - 使用closePath函数关闭贝塞尔路径和手动关闭有什么区别?

iphone - 有未命名的部分或手动附加关系以避免这种情况?

ios - 我想在内置应用程序 "Voice Memos"中访问 iPhone

objective-c - 为什么Xcode中突然出现大量编译器错误?

objective-c - 为什么当窗口失去焦点时这个 NSMenuItem 会被禁用?