私は Android 用の小さなゲームを作成しました。これは多くのユーザーを獲得しています。
このアプリはシングルプレイヤー (ハイスコア、統計あり) とマルチプレイヤーの両方をサポートするため、これを行うには、ユーザーがユーザー名と電子メールで登録する必要があります (ハイスコアでユーザー名を表示し、メール/ユーザー名で招待します)。
ユーザーが最初にアプリをダウンロードするとき、プレイするには登録が必要です。ユーザー、スコアなどのデータベースと、ユーザーの登録時に呼び出されるスクリプトがあり、ユーザー名またはメールが既に取得されているかどうかを確認します。
サーバーへのリクエストは次のようになります。
try {
HttpClient client = new DefaultHttpClient();
String postURL = "http://somepostaddress.com/Script?... (params)";
HttpPost post = new HttpPost(postURL);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {
//Read server response - if ok, save the username etc in shared prefs
//If not ok, read the error message, and notify the user (email / username taken)
}
} catch (Exception e) {
e.printStackTrace();
}
繰り返しますが、これはほぼすべてのユーザーにとって問題なく機能します...しかし、どうやら多くのオランダのユーザーはエラーを受け取り、他のユーザーとして登録できません。コードで例外が発生した場合、またはサーバーの応答がスクリプトが返すことができる応答の 1 つではなかった場合に、エラー メッセージが表示されます。
問題は、これをデバッグできないこと、または現在のバージョンでは何がどこで問題が発生したかについての詳細を取得できないことです。なぜこれがオランダのユーザーだけに起こるように見えるのか、私には本当に理解できません。これを経験している他の国のユーザーからの報告はありません。
ユーザー名に正規表現を実行したため、AZ、az、および 0-9 のみが許可されているため、特殊文字などを含むものであってはなりません。
Anyone ever experienced anything like this, and know what is going wrong or how this could be fixed - maybe the post should be done in another way?
Thanks in advance.