java - Why am I getting an InvalidProtocolBufferException when creating a Message.Builder from byte array but not an InputStream? -
i'm working on servlet , trying log requests. crucial part of code causing error following:
protected void dopost(httpservletrequest request, httpservletresponse response) throws ioexception { stringwriter writer = new stringwriter(); ioutils.copy(request.getinputstream(), writer); message.builder builder = of type com.google.protobuf.generatedmessage.builder; builder.mergefrom(writer.tostring().getbytes()); }
the final line of code above results in following exception:
com.google.protobuf.invalidprotocolbufferexception: protocol message tag had invalid wire type.
however, when code switched to:
protected void dopost(httpservletrequest request, httpservletresponse response) throws ioexception { message.builder builder = of type com.google.protobuf.generatedmessage.builder; builder.mergefrom(request.getinputstream()); }
there no error, , works fine. problem be? seem need similar first code snippet because need use input stream second time (once write file, , once process actual request).
how this?
inputstream inputstream = request.getinputstream(); byte[] data = ioutils.tobytearray(inputstream); message.builder builder = of type com.google.protobuf.generatedmessage.builder; builder.mergefrom(data); // use inputstream else
Comments
Post a Comment