当数据类型为di时,Python无法将数据发送到客户端计算机

2024-10-01 09:16:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python flask框架通过https将数据从服务器发送到客户端 下面是代码

@xyz.route('/hello', methods=['GET', 'POST'])
def hello():
    message = request.args.get("messagetosend")
    datadict = {"sendingData": message}
    url = "https://IP:PORT"
    certificate = "stack.f1"
    keys = "stack.f2"
    cert = (certificate , keys )
    r = requests.request("POST", url, verify=False, cert=cert, data=datadict)
    return "dataPosted"

datadict = {"sendingData": message}:这是因为我的客户机只理解这种格式的请求。你知道吗

但是当datadict类型是dict时,客户机没有接收到数据。但是当我把dict改成str = "sendingData="+message这样的字符串时,客户机正在接收数据

你知道为什么会这样吗?你知道吗


Tags: 数据httpsurlmessagehello客户机certstack
2条回答

您应该在这个请求中使用JSON。你知道吗

import json

data=json.dumps(datadict)替换data=datadict。你知道吗

在客户端,您可以使用javascript访问JSON文件:

var data_set = jQuery.parseJSON({{ data }});

如果将其存储在隐藏字段中,请使用:

var data_set = jQuery.parseJSON($('#hidden_field_id').html());

为什么不像the documentation那样使用requests.post?你知道吗

>>> payload = {'key1': 'value1', 'key2': 'value2'}

>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print(r.text)
{
  ...
  "form": {
    "key2": "value2",
    "key1": "value1"
  },
  ...
}

相关问题 更多 >