Skip to content

Unexpected conversion during a requests.post() operation #901

@rvisc

Description

@rvisc

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions