hug icon indicating copy to clipboard operation
hug copied to clipboard

Unexpected conversion during a requests.post() operation

Open rvisc opened this issue 3 years ago • 0 comments

I noticed an unusual behavior of HUG when sending data to the server through a requests.post() in AWS environment:

  • I create the body of the message by defining a dict that contains three lists of strings;

my_params = {'ips': ['3.4.5.6'], 'nums_a': ['7', '8', '9', '10'], 'nums_b': ['11', '12', '13']}

  • the structure is then sent to the server which performs some operations on the three lists of data;

requests.post("http://" + server_ip + ":8001/start_service", my_params).json()`

  • if the lists in the body contain more than one value, everything works smoothly;
@hug.post('/start_nmap_service')
def start_service(body):
    print(body["nums_a"])

--> ['7', '8', '9', '10']
  • if a list contains only one string value, the method receiving the request gets a string, not a list containing a string.

@hug.post('/start_nmap_service') def start_service(body): print(body["ips"])

--> '3.4.5.6'

This behaviour does not occur if the same code is executed locally using docker-compose.

rvisc avatar Feb 02 '22 14:02 rvisc