With binary data, like zip and PDF files, the encoding must always be 'ISO-8859-1'. If that data is loaded as a 'UTF-8' String, the data will be mangled, and will not work.
Let's start with the payload. If you have the raw bytes of the zip file loaded into a BinaryMessage, you will need to represent those bytes as a String to send it in a webservice call. You can preserve the raw encoding with the following:
var rawString = new java.lang.String(message.getBytes(), 'ISO-8859-1');
Also, binary data in a webservice call requires MTOM. You can specify the encoding to use in the MTOM by adding the following to your parameterMap:
parameterMap.put('http.header.encoding', 'ISO-8859-1');
This will preserve the raw 'ISO-8859-1' encoding from the message to the payload, and from the payload to the actual webservice call.
See also:
Handling HTTP requests and responses
Making Requests via qie.callRESTWebService()