2012-11-07 121 views
9

我正在使用HTTP Post方法並啓動同步請求。 [NSURLConnection sendSynchronousRequest:..]HTTP Post - 超時 - 在請求超時間隔內啓動多個請求

對於HTTP POST請求,默認超時時間爲75秒,正如許多線程所討論的。

但是在75秒的超時期間內,針對使用所有相同參數提出的相同請求,我們正在啓動多個Web服務請求。

請讓我們知道是什麼原因引發了這個多重請求?這是由於HTTP POST一般還是由於同步請求?

@iOS示例代碼

[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[request setHTTPBody:body]; 
[request addValue:[NSString stringWithFormat:@"%d", body.length] forHTTPHeaderField: @"Content-Length"]; 

[[NSURLCache sharedURLCache] setDiskCapacity:0]; 
[[NSURLCache sharedURLCache] setMemoryCapacity:0]; 

NSURLResponse *response; 
response = nil; 

urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];    
if(urlData) 
{ 
     NSString *responseString = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding]; 
     [self parseStringInformation:responseString infoDict:informationDictionary]; 
     //NSLog(@"%@",responseString); 
} 
+0

請問您是否可以刪除源代碼的示例部分,可能是有問題。我從來沒有這樣的行爲。 – iOS

+0

@iOS新增 – Subi

+0

上面的示例代碼有趣的是,我想檢查並記錄在異步傳輸過程中可見的所有事件,可能是系統有重定向導致多個請求的一些原因。只是爲了調試,我建議使用asynchron post並放入所有事件,並用'NSLog()'記錄它們以查看系統端發生的情況。 Afaik沒有辦法在同步模式下記錄這些事件。希望這有幫助,否則我只能檢查我的系統中的傳輸。 – iOS

回答

1

沒有服務器的請求 - 響應記錄有幾種可能性。

程序員錯誤:你是否已經經歷了所有「gotchya」類型的情況?

的Web服務器響應 :沒有網絡服務器日誌(或您的POST服務的代碼)很難說...

API錯誤:你已經找到了,這是造成不必要的副作用,一些極端情況。也許蘋果有一個錯誤跟蹤器或開發者支持論壇?