次のコードを使用して、サーバーに対して単純なPOSTリクエストを実行しようとしています。
NSString *post = [[NSString alloc] initWithFormat:@"email=%@&password=%@", self.email.text, ..]; // .. simplified keychainItem
NSData *postEncoded = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postEncoded length]];
NSURL *url = [NSURL URLWithString:@"http://eng.studev.groept.be/web2.0/a11_web02/testApp.php"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postEncoded];
self.connection = [NSURLConnection connectionWithRequest:request delegate:self];
サーバーでデバッグする場合、これは実際にはGET要求になります。これが、$ _POST[]変数を読み取ろうとしたときにPHPエラーが発生する理由を説明しています。結論:setHTTPMethod:が受け入れられないのはなぜですか?
(追加情報:サーバー上でPHPでコーディングする場合、POSTの使用は正常に機能します)