IOS STHTTPRequest进入错误块

IOS STHTTPRequest进入错误块,sthttprequest,Sthttprequest,我使用STHTTPRequest在IOS应用程序中获取JSON数据。请参阅下面的代码。 当我在iphone6ios8.0上测试时,有时代码会进入错误块。它并不总是发生,只是有时发生。有人能帮忙吗?谢谢你 if(showActivity) { [self ShowActivityIndicatorWithTitle:@"Loading..."]; } STHTTPRequest *request1 = [STHTTPRequest requestWithURLString:[NSStri

我使用STHTTPRequest在IOS应用程序中获取JSON数据。请参阅下面的代码。 当我在iphone6ios8.0上测试时,有时代码会进入错误块。它并不总是发生,只是有时发生。有人能帮忙吗?谢谢你

if(showActivity)
{
    [self ShowActivityIndicatorWithTitle:@"Loading..."];
}

STHTTPRequest *request1 = [STHTTPRequest requestWithURLString:[NSString stringWithFormat:@"%@%@",kBaseUrl,api]];
[request1 setTimeoutSeconds:120.0f];
[request1 setHeaderWithName:@"Content-Type" value:@"application/x-www-form-urlencoded"];
[request1 setHTTPMethod:@"POST"];

request1.rawPOSTData = [postData dataUsingEncoding:NSUTF8StringEncoding];

request1.completionDataBlock = ^(NSDictionary *headers, NSData* data)
{
    [self HideActivityIndicator];

    if(handler != nil)
    {
        NSError* connectionError;

        handler(JSONObjectFromData(data),connectionError);
    }

};

request1.errorBlock=^(NSError *error)
{
    NSLog(@"Error: %@", [error localizedDescription]);
    if(error != nil)
    {
        [[[UIAlertView alloc] initWithTitle:@"Connection Error !" message:kAlertInternetConnection delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil] show];
        [self HideActivityIndicator];

    }
};


[request1 startAsynchronous];

我想我找到了解决办法。基本上,IOS从第一个响应中获取“Keep-Alive”参数,并认为连接是持久的。下一次调用JSON时,IOS正在尝试使用已过期的现有连接。我添加了标题(“连接:关闭”);在每个PHP web服务中。我告诉每个web服务中的ios连接已关闭。我不确定这是不是一个好办法。我已经在设备上测试了20分钟。它起作用了。我很感激你对这件事的任何想法

我想我找到了解决办法。基本上,IOS从第一个响应中获取“Keep-Alive”参数,并认为连接是持久的。下一次调用JSON时,IOS正在尝试使用已过期的现有连接。我添加了标题(“连接:关闭”);在每个PHP web服务中。我告诉每个web服务中的ios连接已关闭。我不确定这是不是一个好办法。我已经在设备上测试了20分钟。它起作用了。我很感激你对这件事的任何想法

在PHP中,我添加了:

ob_end_clean();
header("Connection: close");
ignore_user_abort(true); // just to be safe
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Content-Length: ' . filesize($file));
readfile($file);
成功了

在PHP中,我添加了:

ob_end_clean();
header("Connection: close");
ignore_user_abort(true); // just to be safe
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Content-Length: ' . filesize($file));
readfile($file);

成功了

@nst您能帮忙吗?那么是什么错误?谢谢您@nst的回复,错误是“网络连接丢失”。我使用Apache、PHP作为返回的webservice后台。也使用HTTPS。我已经用charles proxy检查了标题。我认为这是一个错误。我添加了代码[request1 setHeaderWithName:@“Connection”值:@“Keep Alive”];[request1 setHeaderWithName:@“接受编码”值:@“gzip,deflate”];“保持活力”仍然显示为“否”。有什么想法吗?我需要一个特定的URL进行测试。您能以curl格式共享请求吗?@nst您能帮忙吗?那么错误是什么?谢谢您@nst的回复,错误是“网络连接丢失”。我使用Apache、PHP作为返回的webservice后台。也使用HTTPS。我已经用charles proxy检查了标题。我认为这是一个错误。我添加了代码[request1 setHeaderWithName:@“Connection”值:@“Keep Alive”];[request1 setHeaderWithName:@“接受编码”值:@“gzip,deflate”];“保持活力”仍然显示为“否”。有什么想法吗?我需要一个特定的URL进行测试。您能以curl格式共享请求吗?