我有一個非常惱人的問題,我試圖解決。我有一個iPhone應用程序,可以將多種形式的數據發送到服務器。服務器端處理數據並使用PHP進行響應。在數據量很小的情況下,這一切都很順利,但其中一項要求非常大,而且效果並不理想。這些請求似乎編碼得很好,具有適當的長度,即使Content-Length頭部也已設置。儘管如此,我仍然在PHP中得到了一個不完整的(字面切斷的)結果。NSMutableURLRequest在PHP中的不完整長度
下面是一些代碼:
NSString *requestString = [NSString stringWithFormat:@"json=%@", [params JSONFragment], nil];
NSLog(@"%@", requestString);
NSLog(@"%u", [requestString length]);
NSData *requestData = [requestString dataUsingEncoding:NSUTF8StringEncoding];
//NSData *requestData = [NSData dataWithBytes: [requestString UTF8String] length: strlen([requestString UTF8String])]; //[requestString UTF8String]
//NSData *requestData = [NSData dataWithBytes: requestString length: [requestString length]]; //[requestString UTF8String]
//NSData *requestData = [NSData dataWithBytes:[requestString UTF8String] length:[requestString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"https://radarromance.com/api/index.php"]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: requestData];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setValue:[NSString stringWithFormat:@"%u", [requestString length], nil] forHTTPHeaderField:@"content-length"];
考慮實際數據是正確格式的JSON字符串,具有> 4000個字符的長度。我跑了一個小測試,看看NSData對象是否有正確的長度,它已經。在iPhone方面,我認爲,一切都很好。
但是PHP端只顯示了一部分請求,所以它不完整。 post_max_size是16M,這應該足夠了。
這怎麼可能?什麼可能是錯的?任何幫助在這裏非常感謝!
親切的問候,
雷因德
您是否嘗試過發送沒有內容長度標題的請求? – 2011-05-25 21:50:08
是的,沒有工作! @Rizwan所以改變了Content-Type。 @Bitterzoet我檢查了,響應幾乎是即時的,超時設置爲一個小時......是不是有一個PHP設置或我忽略的怪癖? – 2011-05-26 09:01:03