python webhook,传入的 gzip 数据 - 写入文件

问题描述

对 python 非常新,做了一些练习,现在尝试使用 API 和 webhoks。

我的目标:我有一个网络管理系统,可以根据附近客户端的 WiFi 可见性,每 120 秒向我发送一次位置数据

我写了这个简单的代码并获取传入的数据 - 数据被压缩,所以我看到它们是二进制的

from flask import Flask,request

app = Flask(__name__)

@app.route('/',methods=['POST'])
def index():
    print(request.headers)
    print(request.data)
 
    return ('This is a website. Port 443 - Https. ',200,None)


if __name__ == '__main__':
    app.run(debug=True,use_reloader=True,ssl_context='adhoc',port=443)

结果是:

主持人:e7145a924eea.eu.ngrok.io 用户代理:Java/1.8.0_251 内容长度:1940 接受:text/plain、application/json、application/x-jackson-smile、application/cbor、application/*+json、/ 授权:基本11223344 内容编码:gzip 内容类型:应用程序/json X-Ah-Event-Type:位置 X-Ah-Message-Type:LOCATION_CLIENT_CENTRIC X-Forwarded-For:1.2.3.4 X-Forwarded-Proto:https 接受编码:gzip

b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed\x9cYO\x1bI\x10\x80\xff\xcbz\xa7\xfb6\xbf\xbb\xb9\xf9\x17\x91>x\xad\xfbt\x00\x00'

我只是想将二进制流写入文件,但如果我尝试做类似的事情

with open("D:\\Dati\python\\200_WebApps_and_webhooks\\API.gzip",'wb') as API_data:
        print(request.data,file=API_data)

我收到错误 TypeError: a bytes-like object is required,not 'str'

这个想法是将原始传入数据发送到一个可以解压缩以查看 json 格式的文件。

下一步将动态解压缩并处理以这样的格式打印

......"bodyRaw":"{"messageMetaData":{"eventType":"LOCATION","messageType":"LOCATION_CLIENT_CENTRIC"},"data":{"ownerId":136502,"observations ":[{"clientMac":"aaabbbcccddd","ipv4":null,"ipv6":null,"seenTime":"2021-01-08T16:43:25.154Z","seenEpoch":1610124205154,"userName" :null,"authMethod":null,"ssid":null,"制造商":null,"os":null,"lat":0.0,"lng":0.0,"x":2.916691159714196,"y":1.9132701186769128,"clientMetaData":null,"deviceObservers":[{"apMac":"885BDD8B3E40","rssi":-74,"locationIdHierarchy":[586271625939276,586271625939269,5862371625939269,58623716,58623716]7"88623716"16" ","seenTime":"2021-01-08T16:43:25.163Z","seenEpoch":1610124205163,"userName":null," ssid":null,"x":13.302300953114472,"y":8.587561374795419,"deviceObservers :[{"apMac":"885BDD8B3E40","rssi":-87,586271625939267]} ...省略。

提前致谢

佛朗哥

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)