gpt4 book ai didi

VB Request.InputStream 的 Java 等效项

转载 作者:行者123 更新时间:2023-12-02 07:25:53 26 4
gpt4 key购买 nike

我有一个 Web 服务,正在将其从 VB 重写为 Java servlet。在网络服务中,我想提取客户端设置的正文实体,如下所示:

StringEntity stringEntity = new StringEntity(xml, HTTP.UTF_8);
stringEntity.setContentType("application/xml");
httppost.setEntity(stringEntity);

在 VB Web 服务中,我通过以下方式获取此数据:

Dim objReader As System.IO.StreamReader
objReader = New System.IO.StreamReader(Request.InputStream)
Dim strXML As String = objReader.ReadToEnd

这效果很好。但我正在寻找 Java 中的等效项。

我已经尝试过这个:

ServletInputStream dataStream = req.getInputStream();
byte[] data = new byte[dataStream.toString().length()];
dataStream.read(data);

但它给我的只是一个难以理解的字符串:

data = [B@68514fec

请指教。

最佳答案

您需要使用 ByteArrayOutputStream,如下所示:

ServletInputStream dataStream = req.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();

int r;
byte[] buffer = new byte[1024*1024];

while ((r = dataStream.read(data, 0, buffer.length)) != -1) {
baos.write(buffer, 0, r);
}

baos.flush();

byte[] data = baos.toByteArray();

关于VB Request.InputStream 的 Java 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13587427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com