POSTデータをサーバーに送信してMySQLデータベースにデバイスを登録し、通知などを送信できるようにするiPhoneアプリを持っています。一意の識別子、デバイス名、トークン、およびパスワードやユーザー名などの他のいくつかの小さなものを POST 要求としてサーバーに送信します。問題は、サーバーがデータを受信しない場合があることです。つまり、POST 入力に対して空白の値を受け取るだけでなく、投稿データをまったく受け取っていないということです。サーバーへのすべての POST 入力をいくつかのログ ファイルに記録しています。デバイスからの POST データに依存するスクリプトが失敗すると (データが検出されない)、POST データが送信されていないことが原因であることに気付きます。これは、データや何かを拒否するなど、サーバー上の問題ですか、それともクライアント側にある必要がありますか? 何が原因でしょうか?
iPhoneコード:
NSString *post = [NSString stringWithFormat:@"deviceIdentifier=%@&deviceToken=%@",deviceIdentifier,deviceToken];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://website.com/RegisterScript.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"MyApp-V1.0" forHTTPHeaderField:@"User-Agent"];
[request setHTTPBody:postData];
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *response = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding];