将二进制数据上载到Java
感谢您在这方面的帮助: 我有以下C#代码: 这将调用下面的Java servlet代码:将二进制数据上载到Java,java,c#,servlets,Java,C#,Servlets,感谢您在这方面的帮助: 我有以下C#代码: 这将调用下面的Java servlet代码: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String szDoubleUp = request.getParameter("double"); double[] doubl
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#发送到Javaservlet的二进制数据
谢谢,
米奇
DataInputStream inputStream = request.getInputStream();
DataInputStream dataIn = new DataInputStream(request.getInputStream())