diff --git a/src/caosdb/connection/connection.py b/src/caosdb/connection/connection.py
index c7b7b3e032527dea68a931a8862ad5226c7050e7..183a75fdf2c185cb0058516d1a6a43bb3d5450d8 100644
--- a/src/caosdb/connection/connection.py
+++ b/src/caosdb/connection/connection.py
@@ -83,6 +83,11 @@ class _DefaultCaosDBServerConnection(CaosDBServerConnection):
         if headers is None:
             headers = {}
         try:
+            self._http_con = StreamingHTTPSConnection(
+                host=self.setup_fields["host"],
+                timeout=self.setup_fields["timeout"],
+                context=self.setup_fields["context"],
+                socket_proxy=self.setup_fields["socket_proxy"])
             self._http_con.request(method=method, url=self._base_path + path,
                                    headers=headers, body=body)
         except SocketError as socket_err:
@@ -117,10 +122,16 @@ class _DefaultCaosDBServerConnection(CaosDBServerConnection):
                 "No connection url specified. Please "
                 "do so via caosdb.configure_connection(...) or in a config "
                 "file.")
-        self._http_con = StreamingHTTPSConnection(
-            host=host,
-            timeout=int(config.get("timeout")),
-            context=context)
+
+        socket_proxy = None
+        if "socket_proxy" in config:
+            socket_proxy = config["socket_proxy"]
+
+        self.setup_fields = {
+            "host": host,
+            "timeout": int(config.get("timeout")),
+            "context": context,
+            "socket_proxy": socket_proxy}
 
 
 def _make_conf(*conf):