私は現在GAE(Python)を調べており、iPhoneアプリケーションからPOSTリクエストを送信しようとしています。Google App EngineへのNSURLRequest POST?
GETメソッドで送信すると正常に動作しますが、POSTメソッドを使用すると失敗します。
ここでは、サーバー側です:
class echoHandler(webapp.RequestHandler):
def get(self):
password = self.request.get("password")
if password == "ping":
self.response.out.write("pong")
else:
self.response.out.write("erreur de password")
def post(self):
password = self.request.get("password")
if password == "ping":
self.response.out.write("pong")
else:
self.response.out.write("erreur de password")
と、クライアント側で:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myapp.appspot.com/echo"]];
NSMutableURLRequest *maRequete = [NSMutableURLRequest requestWithURL:url];
[maRequete setHTTPMethod:@"POST"];
NSString *essaiMdp = @"password=ping";
[maRequete setHTTPBody:[essaiMdp dataUsingEncoding:NSUTF8StringEncoding]];
//[maRequete setValue:[NSString stringWithFormat:@"%d",[essaiMdp length]] forHTTPHeaderField:@"Content-Length"];
//[maRequete setValue:@"text/html" forHTTPHeaderField:@"Content-Type"];
//[maRequete setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
NSURLResponse *reponse;
NSError *erreur;
NSData *donneesPOST = [NSURLConnection sendSynchronousRequest:maRequete returningResponse:&reponse error:&erreur];
if (donneesPOST) {
NSString *strResultat = [[NSString alloc] initWithData:donneesPOST encoding:NSUTF8StringEncoding];
NSLog(@"reponse recue !");
NSLog(strResultat);
resultat.text = strResultat;
}
else {
if (erreur) {
NSLog(@"erreur lors de la requete HTTP:%@", url);
NSLog(@"erreur: %@", [erreur localizedDescription]);
}
}
奇妙な何かが、すべてがローカルホストで動作しますが、私はインターネット上でアプリケーションを展開するときに、POSTメソッドということです動作を停止。
どうも !
「停止した作業」はどうですか?あなたはクライアント側で何を見ますか?サーバー上のログには?サーバーにデバッグコードを追加して実際に何が送信されたのかを判断しましたか? –
申し訳ありませんが、このアプリがインターネット(Google App Engine)にデプロイされているときに、POSTメソッドが呼び出されていないように見える(サーバー側)ようです。デバッグコードについては、Google App Engine SDKがローカルでデバッグするのに役立ちますが、デプロイする際にはまだ実行できるかどうかわかりません。私は手動でTelnetを使用してHTTPリクエストを送信しようとしていましたが、ローカルで動作していましたが、400エラー(不正なURL)でした... – Paraita
私もこの問題を抱えています。私はさらに簡単なサンドボックスのセットアップとPOST要求が失敗している。あなたはこれを解決したことがありますか?これまで私はまだそれを働かせていない。 – gngrwzrd