使用请求将字节数组发送到使用 http post 的 web 服务

Ben*_*dEg 5 python json bytearray python-2.7 python-requests

目前我正在尝试将字节数组发送到网络服务,但我收到错误消息,字节数组不可序列化:

类型错误:bytearray(b'') 不是 JSON 可序列化的

我正在使用以下代码

发送请求

# Set blob
with open('demo-file.txt') as file:
    f = file.read()
    b = bytearray(f)
    print a.set_data('5cb9bc4d-c0fd-40ab-8b74-4e62b50d8966', b)
Run Code Online (Sandbox Code Playgroud)

Set_Data 方法:

def set_data(self, path, data):
    """
    Save data in

    Parameter
    --------
    path (str): Path as string
    data (bytearray): Data as bytearray
    """

    result = requests.post(self.url + '/set', json = { 'path': path, 'data': data})

    # Check status and token
    if result.status_code == 200:
        return result.text
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我是否必须使用其他一些方法来发送字节数组?

非常感谢大家!

Mei*_*mow 5

如果您确实需要 json,则必须对二进制数据进行编码。请参阅:Python 3 中的 Base64 编码

另一种选择:如何通过 HTTP 发送二进制 post 数据?