0

署名されたJavaアプレットを使用して、次のようなURLに投稿しようとしています。

http://some.domain.com/something/script.asp?param=5041414F9015496EA699F3D2DBAB4AC2 | 178411 | 163843 | 557 | 1 | 1 |164||試行|1630315

しかし、Javaが接続を確立すると、Javaコンソールには次のように表示されます。

ネットワーク:接続http://some.domain.com/something/script.asp?param=5041414F9015496EA699F3D2DBAB4AC2%7C178411%7C163843%7C557%7C1%7C1%7C164%7C%7Cattempt%7C1630315

|からのクエリでJavaにパイプをurlencodeさせたくありません。%7cに。接続しているサービスがパラメータをurldecodeしていないようで、サーバー側のコードを変更できません。クエリをエスケープせずに投稿を作成する方法はJavaにありますか?

私が使用しているJavaは以下のとおりです。

try {
        URL url = new URL(myURL);
        URLConnection connection = url.openConnection();
        connection.setDoOutput(true);

        OutputStreamWriter out = new OutputStreamWriter(
                connection.getOutputStream());
        out.write(toSend);
        out.close();

        BufferedReader in = new BufferedReader(
                new InputStreamReader(
                        connection.getInputStream()));

        String decodedString = "";

        while ((decodedString = in.readLine()) != null) {
            totalResponse = totalResponse + decodedString;
        }
        in.close();

    } catch (Exception ex) {
    }

助けてくれてありがとう!

4

1 に答える 1

0

URLクラスはエンコードを行いません。私の開発サーバーでこれをテストすると、この疑いが確認されました。コードは'|'、質問に含めたスニペットの前のどこかに文字をエンコードしている必要があります。

于 2012-09-12T15:11:10.477 に答える