感谢你在这方面的帮助:
我有以下C#代码:
double[] data = new double[] { 1.0, 2.0, 3.0 };
byte[] bytes = CreateByteArrayFromDoubleArray(data);
WebClient webClient = new WebClient();
byte[] byteData = webClient.UploadData(szWebEndPoint + "?double", bytes);这将调用下面的Java servlet代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String szDoubleUp = request.getParameter("double");
double[] doubles = {2.5,4.5,6.5,8.5};
if(szDoubleUp != null && szDoubleUp.equals("true"))
{
doubles[0] = 5.0;
}
byte[] bytes = new byte[doubles.length * 8];
ByteBuffer buf = ByteBuffer.wrap(bytes);
for (double d : doubles)
{
buf.putDouble(d);
}
response.setContentType("application/octet-stream");
response.setContentLength(bytes.length);
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.write(bytes, 0, bytes.length);
servletOutputStream.flush();
servletOutputStream.close();
}
}不出所料,这将在C#中返回一个数字数组,第一个数组取决于request.getParameter("double")的存在和值。
但是,名为data的数组又如何呢?我将其转换为字节,并在调用webClient.UploadData时设置为第二个参数。如何在Java servlet中访问这些值?
我可以使用:
InputStream inputStream = request.getInputStream();但是我怎么才能把替身读出来呢,我看到了
DataInputStream inputStream = request.getInputStream();由于以下错误而不可能:
“类型不匹配:无法从ServletInputStream转换为DataInputStream”
因此,我的一般性问题是如何读取通过WebClient.UploadData从C#发送到Java servlet的二进制数据?
谢谢,米奇。
发布于 2016-05-20 22:54:11
DataInputStream dataIn = new DataInputStream(request.getInputStream())https://stackoverflow.com/questions/37349809
复制相似问题