In case the other answers weren’t clear enough:
First you gzip the body with zlib (this can be done in a stream so you don’t need the whole thing in memory at once, which is the whole point of chunking).
Then you send that compressed body in chunks (presumably the ones provided by the gzip stream, with the chunk header to declare how long it is), with the Content-Encoding: gzip and Transfer-Encoding: chunked headers (and no Content-Length header).
If you’re using gzip or zcat or some such utility for the compression, it probably won’t work. Needs to be zlib. If you’re creating the chunks and then compressing them, that definitely won’t work. If you think you’re doing this right and it’s not working, you might try taking a packet trace and asking questions based on that and any error messages you’re getting.