2013-03-14 90 views
1

我向Web服務發出請求,但是當我選擇3G連接時,會調用didfailwitherror方法,並顯示錯誤「請求超時」。當連接是wifi時,我得到預期的結果。爲什麼我的網絡服務請求在3G連接上超時? iphone

我正確實現了所有可觸發的方法,但我不知道如何解決這個問題。這是否會發生,因爲反應太大?我也增加了timeoutInterval,但沒有成功。

這是響應:

[{ 「值」: 「1 septembrie - 23 octombrie 2009 」},{「 值」: 「1 septembrie - 30 septembrie 2009」},{ 「值」:「 17 noiembrie - 25 noiembrie 2009「},{」value「:」7 decembrie - 16 decembrie 2009「},{」value「:」22 februarie - 29 martie 2010「},{」value「:」01 8月 - 31 8月2010「},{」value「:」18 octombrie - 30 noiembrie 2010「},{」value「:」14 februarie - 31 martie 2011「},{」value「:」26 aprilie - 29 aprilie 2011「}, 「value」:「29 iunie - 20 iulie 2011」},{「value」:「06 septembrie - 14 septembrie 2011」},{「value」:「10 octombrie - 2011年11月06日」},{「value」 7 decembrie - 31 decembrie 2011「},{」value「:」15 februarie - 30 martie 2012「},{」value「:」5 aprilie - 9 mai 2012「},{」value「:」05 noiembrie 2012「} ,{「value」:「05 noiembrie - 22 noiembrie 2012 「},{」 值」: 「23 noiembrie - 06 decembrie 2012」},{ 「值」: 「03 decembrie - 28 decembrie 2012」}]

下面是代碼:

NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@"%@api-v2.asmx", MainUrl]]; 

NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url 
                 cachePolicy:NSURLRequestUseProtocolCachePolicy 
                timeoutInterval:50.0]; 

NSString * parameters = [[NSString alloc] initWithString:[self XmlRequest]]; 
NSLog(@"Request=%@", parameters); 
NSString * msgLength = [NSString stringWithFormat:@"%d", [parameters length]]; 

[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request addValue:@"http://tempuri.org/GetIndexLinkedTable" forHTTPHeaderField:@"SOAPAction"]; 
[request addValue:msgLength forHTTPHeaderField:@"Content-Length"]; 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:[parameters dataUsingEncoding:NSUTF8StringEncoding]]; 


NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 

if (connection){ 
    self.responseData = [NSMutableData data]; 
} 
} 

回答

0

據我所知,連接應該保持活着。就網絡數據傳輸而言,NSURLConnection是一個相當聰明的類。但是,您可以嘗試幾件事。有一個NSURLRequest屬性設置超時間隔。它可以如下

request.timeoutInterval = 60.0 

試試這個,看看是否有幫助,因爲我聽說有/是一些問題在構造函數中使用它進行設置。您的數據可能不夠大,不能保證超時,所以請檢查您的服務器設置以確保它能夠接受請求,並且也設置了不錯的超時間隔。