Changing so if Accept header is explicitly set, sending json does not overwrite.

This change handles a case where the user has set the Accept header (other than application/json) for the request and wants to send JSON. Accept header is not overwritten.
A valid use case for this is a REST API where the API expects a custom Accept header for versioning reasons (i.e. application/vnd.custom.v1+json)