I prefer to do the JSON route. This way the service returns the boundingbox coordinates of the returned image. You can parse those and use a RasterGeoreferencer to place the image on coordinates.
The reason for this is in the documentation:
...
The extent displayed in the exported map image may not exactly match the extent sent in the box parameter when the aspect ratio of the image size does not match the aspect ratio of the box. The aspect ratio is the height divided by the width. In these cases, the extent is resized to prevent map images from appearing stretched. The exported map's extent is sent along with the JSON and HTML responses, and may be used in client-side calculations. It's important that the client-side code update its extent based on the response.
...
See the smaller requested and the bigger returned boundingboxes

You can find the documentation of the export service here.
Sample workspace attached.