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_text时,会在字节数组上调用该toString()方法将其转换为字符串,并将此字符串附加到 URL。返回toString()方法后跟对象的哈希码。byte[]"[B@"

也就是说,你的代码真的没有意义。您有一个字符串并希望将其附加到 URL。将字符串转换为字节数组然后将字节数组转换回字符串有什么意义?

有意义的是使用java.net.URLEncoder它来确保所有特殊字符都被正确编码,并且编码的结果可以安全地作为查询字符串参数附加。

于 2012-06-07T10:43:34.807 回答