おそらく誰かが洞察している興味深い問題があります。次のコードを使用して、クエリ文字列を Android の URL にエンコードします。
request = REQUEST_BASE + "?action=loadauthor&author=" + URLEncoder.encode(author, "UTF-8");
次に、他のいくつかのパラメーターを文字列に追加し、次のような URI を作成します。
uri = new URI(request);
ある時点で、クエリ文字列を取り出してチェックサムを作成します。
uri.getRawQuery().getBytes();
次に、次の方法で送信します。
HttpGet get = new HttpGet(uri);
次に、Appengine サーバーで文字列を取得し、チェックサムとの照合を試みます。
String query = req.getQueryString();
通常、これで問題なく動作します。ただし、サーバーへの途中でエンコードされていないように見える文字がいくつかあります。例えば、
action=loadauthor&author=Charles+Alexander+%28Ohiyesa%29+Eastman×tamp=1343261225838&user=1479845600
サーバーログ (および GAE アプリ) に次のように表示されます。
action=loadauthor&author=Charles+Alexander+(Ohiyesa)+Eastman×tamp=1343261226837&user=1479845600
これは、いくつかの文字 (括弧など) でのみ発生します。他の文字はずっとエンコードされたままです。私が間違っているかもしれないことについて誰かが考えていますか? フィードバックをお待ちしております。