xref: /aosp_15_r20/external/cronet/net/data/websocket/echo-request-headers_wsh.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2014 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4#
5# This handler serializes the received headers into a JSON string and sends it
6# back to the client. In |headers_in|, the keys are converted to lower-case,
7# while the original case is retained for the values.
8
9import json
10from mod_pywebsocket import msgutil
11
12
13def web_socket_do_extra_handshake(request):
14  pass
15
16
17def web_socket_transfer_data(request):
18  # Since python 3 does not lowercase the dictionary key, manually lower all
19  # keys to maintain python 2/3 compatibility
20  lowered_dict = {
21      header.lower(): value for header, value in request.headers_in.items()
22  }
23  msgutil.send_message(request, json.dumps(lowered_dict))
24  # Wait for closing handshake
25  request.ws_stream.receive_message()
26