2022年 11月 7日

python通过wss文件上传

参考网址

# -!- coding: utf-8 -!-
import requests
import websocket
import json

# 使用session保持登录
session = requests.session()
url = 'https://xxxxxxxxxx/login?mode=CODE'
data = {
    "mobile": "xxxxxxxxxx",
    "valid_code": "xxxxxxxxxx"
}
url2 = 'https://xxxxxxxxxx/document/imp/dynamic_upload'
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"
}
res = session.post(url=url, data=data, headers=headers)
# print(res.text)

# 请求该接口,生成上传文件需要的token值
url3 = 'https://xxxxxxxxxx/api/auth/get_auth?app_type=service&v=0.5424937492241991634916550782'
aaa = session.post(url3, headers=headers)
print(aaa.json().get('token'))

# 开始上传文件
# 上传文件接口
files = {
    "file": open('01人员信息主集.xlsx', 'rb')
}
data2 = {
    'category': 'emp',
    'extend_property': '{"config":"hr_import_export_controller_config.json","role":"cm-org-emp.emp","state":{"import":"inside","export":"outside"}}',
}

res1 = session.post(
    url=url2,
    data=data2,
    files=files,
    headers=headers
)
print(res1.text)
res2 = session.post(
    url=f'https://xxxxxxxxxx/ws/imp.get.info?token={aaa.json().get("token")}&category=emp',
    data=data2,
    files=files
)
print(res2.text)

url = f'wss://xxxxxxxxxx/ws/imp.get.info?token={aaa.json().get("token")}&category=emp'  # websocket连接地址
ws = websocket.create_connection(url)  # 创建连接
'''data为json格式'''
data = {"category": "emp"}
ws.send(json.dumps(data))  # json转化为字符串,必须转化
print(ws.recv())  # 服务器响应数据
ws.close()  # 关闭连接

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56