Or it may even be worth taking this all the way to:
```java
interface Response {
  InputStream in();
  boolean contentEncoding();
}
```
Then you can have ~10-12 line implementations for all three clients.