POST一下就知道:人生苦短,我用Python!
Python编程笔记----
背景:
“闸机端”简版程序要求:
读取扫描仪得到的userID;
向服务器发送请求进行验证;
根据返回值(True/False)决定闸机的信号。
1. 文件的读取
网上买了个扫描仪,可是说明书忒简陋了,时间紧,来不及研究了。目前只知道将闸机连接到电脑,打开记事本,扫描仪扫二维码获取的数据就直接读在记事本里。
所以先创建一个TXT文本,自己用数据把程序这边测了。
- 打开文件(读写模式) ---> 读取所有行(针对小文件)---> 读取最新的userID --->写入换行符(以便下次扫描仪数据的输入位置正确)
#打开(扫描仪输入内容的)文件 fname = r"F:\userid.txt" with open(fname,'r+') as f: lines = f.readlines() userID = lines[-1]#取最新一行的userID # 换行 f.write("\n") print(userID)
ps: 读取文件最后一行内容,参考博客👉 针对大文件小文件两种
- 更:因为这种存文件的方式我找到bug了,所以我改了。如果扫描仪连到txt文件,但是它不会自动保存啊。。然后我发现Python里,使用input()输入的时候,连接扫描仪可以直接读取数据,并回车!!这也太方便了吧!所以最后就这样啦~
2. POST请求与Json数据获取
- 导入requests,json库 ---> 准备POST请求的header,data,url --- > 请求直接返回字符串 --->取JSON数据
#发送POST请求 url = "https://www.xxxxxxxxxx.top:8082/visitorder/accesslib" data = { "userID": int(userID) #param } headers = {'Content-Type': 'application/json'} #header response = requests.post(url=url, headers=headers, data=json.dumps(data)).text content = json.loads(response) result = content['successEnter'] if result: print("成功入馆!") else: print("用户已在馆内")
ps: 👉参考