0

テキストをWebサービスに送信していますが、最初にバイトに変換し、受信後にサーバー側でバイトを文字列に戻したいと考えています。バイトに変換できましたが、文字列に戻すのに問題があります。SOに関する多くのチュートリアルを見てきましたが、これまでのところ何も機能していないようです。

クライアントアプリケーションはこちら

try {   
        String text = "holiday";
        byte[] byte_text = text.getBytes();
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet();
        URI link = new URI("http://192.165.1.3:8080/HelloWorld/hello?text="+byte_text);
        request.setURI(link);
        HttpResponse response = client.execute(request);

    } catch (Exception e1) {
        e1.printStackTrace();
    }

これが私がクライアント側で行ったことです

    byte[] why = req.getParameter("text").getBytes();
    String text = new String(why);
    System.out.println(text);

getbyte および new String 関数を呼び出すときに UTF および ASCII エンコーディングを使用しようとしましたが、それでも結果は次のようなバイト単位で得られます [B@405c0ce0

4

1 に答える 1

3

を実行すると、バイト配列"http://192.168.0.3:8080/HelloWorld/hello?text=" + byte_texttoString()メソッドが呼び出されて文字列に変換され、この文字列が URL に追加されます。オブジェクトのハッシュ コードが後に続く戻り値のtoString()メソッド。byte[]"[B@"

とはいえ、あなたのコードは本当に意味がありません。String があり、それを URL に追加したいとします。文字列をバイト配列に変換してから、バイト配列を文字列に戻すポイントは何ですか?

java.net.URLEncoderすべての特殊文字が正しくエンコードされ、エンコードの結果がクエリ文字列パラメーターとして追加されても安全であることを確認するために使用するのが理にかなっています。

于 2012-06-07T10:43:34.807 に答える