過去,我創建了一個iPhone應用程序,它依賴於由php頁面更新的sqlite數據庫。當你訪問PHP頁面時,它打印出一個sqlite數據庫的轉儲文件,應用程序運行各種查詢來更新sqlite數據庫。我以前的應用程序以這種方式運行良好,並會相應更新。我最近嘗試將相同的過程應用於具有更大數據庫的新應用程序。我遇到了問題。不接收來自NSMutableURLRequest的數據(iPhone應用程序同步)
我在做的是發送一些post變量到一個PHP頁面,該頁面可以識別POST並回應sqlite命令來更新數據庫。問題在於頁面打印命令需要幾秒鐘的時間。如果我有頁面打印一些靜態文本,我得到它在我的NSLog(@「響應數據將是==>%@」,結果);命令。如果我必須從我的MySQL數據庫中提取信息,大約需要3-5秒,然後打印(在我的普通瀏覽器上)。但是,當我運行該應用程序時,它表示響應數據將會是==>(null)而不是命令。
任何人都可以闡明可能發生的事情嗎?我知道,當它不打印很多東西,並且它是靜態的時候,它就可以工作。動態部分由於某種原因返回null。
幫助讚賞。
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlBase]];
[request setHTTPMethod:@"POST"];
[request setTimeoutInterval:60.0];
NSData *post = [myParameters dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[post length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
[request setHTTPBody:post];
[request setHTTPBody:[myParameters dataUsingEncoding:NSUTF8StringEncoding]];
// set headers
NSString *contentType = [NSString stringWithFormat:@"text/plain"];
NSHTTPURLResponse *urlResponse = nil;
NSError *error = [[NSError alloc] init];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&urlResponse
error:&error];
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Response data is going to be ==> %@", result);
我曾嘗試用你的代碼,但即使實現它之後,我沒有從我的網頁上,而不是現在連靜態的東西得到任何數據備份。在我收到數據之前,這只是我想的超時問題。現在,它甚至不會給我我的靜態內容。 – Kevin 2012-01-11 13:47:27
你必須在輸出窗口中檢查NSLog返回的數據。或者粘貼你的output.so我可以檢查。輸出應該是ur soap的結果。 – 2012-01-12 05:07:26