我正在尝试理解将byte[]转换成string、将byte[]的string表示形式转换为byte[]的过程... 我将byte[]转换成string进行发送,然后期望我的Web服务(使用Python编写)将数据直接传送回客户端。
当我从Java应用程序发送数据时...
Arrays.toString(data.toByteArray())
需要发送的字节数..
[B@405217f8
发送(这是Arrays.toString()的结果,应该是我的字节数据的字符串表示形式,这些数据将通过网络发送):
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
在Python端,Python服务器将一个字符串返回给调用者(我可以看到它与我发送到服务器的字符串相同)。
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
服务器应将此数据返回给客户端,在客户端可以进行验证。
客户端接收到的响应(作为字符串)如下所示
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
我似乎无法弄清如何将接收到的字符串转换为byte[]。
无论我尝试什么,最终得到的byte数组看起来都像这样...
[91, 45, 52, 55, 44, 32, 49, 44, 32, 49, 54, 44, 32, 56, 52, 44, 32, 50, 44, 32, 49, 48, 49, 44, 32, 49, 49, 48, 44, 32, 56, 51, 44, 32, 49, 49, 49, 44, 32, 49, 48, 57, 44, 32, 49, 48, 49, 44, 32, 51, 50, 44, 32, 55, 56, 44, 32, 55, 48, 44, 32, 54, 55, 44, 32, 51, 50, 44, 32, 54, 56, 44, 32, 57, 55, 44, 32, 49, 49, 54, 44, 32, 57, 55, 93]
或者我可以获得以下字节表示:
B@2a80d889
这两个与我发送的数据不同... 我确定我错过了些非常简单的东西...
有任何帮助吗?!
0QEQVAJlblNvbWUgTkZDIERhdGE=
)或十六进制编码(d101105402656e536f6d65204e46432044617461
)的字节;而不是带有分隔符、瑕疵和其他东西的数组编码。因此,这个问题和答案对于99%的情况都不适用。请注意,TCP和HTTP完全能够使用“POST”处理更大量的二进制数据。 - Maarten Bodewes