diff --git a/src/_zkapauthorizer/resource.py b/src/_zkapauthorizer/resource.py
index c724fbca870dabb0457688c2ce162b91290161fd..7e411a244a5ad0899ca1100fec0c23019fd2abea 100644
--- a/src/_zkapauthorizer/resource.py
+++ b/src/_zkapauthorizer/resource.py
@@ -80,6 +80,15 @@ def from_configuration(node_config, store, redeemer=None):
     return root
 
 
+def application_json(request):
+    """
+    Set the given request's response content-type to ``application/json``.
+
+    :param twisted.web.iweb.IRequest request: The request to modify.
+    """
+    request.responseHeaders.setRawHeaders(u"content-type", [u"application/json"])
+
+
 class _VoucherCollection(Resource):
     """
     This class implements redemption of vouchers.  Users **PUT** such numbers
@@ -115,7 +124,7 @@ class _VoucherCollection(Resource):
 
 
     def render_GET(self, request):
-        request.responseHeaders.setRawHeaders(u"content-type", [u"application/json"])
+        application_json(request)
         return dumps({
             u"vouchers": list(
                 voucher.marshal()
@@ -172,7 +181,7 @@ class VoucherView(Resource):
 
 
     def render_GET(self, request):
-        request.responseHeaders.setRawHeaders(u"content-type", [u"application/json"])
+        application_json(request)
         return self._voucher.to_json()