Skip to content

Commit e6e2234

Browse files
author
Emmanuel Pignot
committed
Correct content-type headers
Gateway client should set content-type to application/json when issuing POST requests with json-encoded body
1 parent c07ca73 commit e6e2234

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

jupyter_server/gateway/gateway_client.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,14 @@ def load_connection_args(self, **kwargs):
416416
if len(self._static_args) == 0:
417417
self.init_static_args()
418418

419-
kwargs.update(self._static_args)
419+
for arg, static_value in self._static_args.items():
420+
if arg == "headers":
421+
given_value = kwargs.setdefault(arg, {})
422+
if isinstance(given_value, dict):
423+
given_value.update(static_value)
424+
else:
425+
kwargs[arg] = static_value
426+
420427
return kwargs
421428

422429

jupyter_server/gateway/managers.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,12 @@ async def start_kernel(self, **kwargs):
436436

437437
json_body = json_encode({"name": kernel_name, "env": kernel_env})
438438

439-
response = await gateway_request(self.kernels_url, method="POST", body=json_body)
439+
response = await gateway_request(
440+
self.kernels_url,
441+
method="POST",
442+
headers={"Content-Type": "application/json"},
443+
body=json_body,
444+
)
440445
self.kernel = json_decode(response.body)
441446
self.kernel_id = self.kernel["id"]
442447
self.kernel_url = url_path_join(self.kernels_url, url_escape(str(self.kernel_id)))
@@ -467,7 +472,12 @@ async def restart_kernel(self, **kw):
467472
assert self.kernel_url is not None
468473
kernel_url = self.kernel_url + "/restart"
469474
self.log.debug("Request restart kernel at: %s", kernel_url)
470-
response = await gateway_request(kernel_url, method="POST", body=json_encode({}))
475+
response = await gateway_request(
476+
kernel_url,
477+
method="POST",
478+
headers={"Content-Type": "application/json"},
479+
body=json_encode({}),
480+
)
471481
self.log.debug("Restart kernel response: %d %s", response.code, response.reason)
472482

473483
async def interrupt_kernel(self):
@@ -476,7 +486,12 @@ async def interrupt_kernel(self):
476486
assert self.kernel_url is not None
477487
kernel_url = self.kernel_url + "/interrupt"
478488
self.log.debug("Request interrupt kernel at: %s", kernel_url)
479-
response = await gateway_request(kernel_url, method="POST", body=json_encode({}))
489+
response = await gateway_request(
490+
kernel_url,
491+
method="POST",
492+
headers={"Content-Type": "application/json"},
493+
body=json_encode({}),
494+
)
480495
self.log.debug("Interrupt kernel response: %d %s", response.code, response.reason)
481496

482497
async def is_alive(self):

0 commit comments

Comments
 (0)