Rather than using None as the default for the `headers` param you could use `{}`. I also think you should just update the headers dict with headers supplied rather than replacing them altogether:

```
default_headers = {'content-type": content_type ....}
default_headers.update(headers)
```