IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python使用HTTP通讯例子 -> 正文阅读

[Python知识库]Python使用HTTP通讯例子

Http是常用的通讯协议,使用的对应Python库名为requestsFlask

from flask import Flask,request,make_response
app = Flask(__name__)

@app.route('/', methods=['GET', 'PUT', 'POST'])
def index():
    if request.method == 'GET':
        if request.args['status'] == 'ok':
            data = {"result": "success","msg": "welcome to use get."}
            return data
    elif request.method == 'PUT':    
        if request.form['User'] == 'FK2000':
            if request.form['Password'] == '12345':
                print(request.form)
                data = {"result": "success","cookies": "9f6e7t3j5l1k2s0x"}
                return data        
    elif request.method == 'POST':    
        if request.form['action'] == 'upload_log':
            if request.cookies['cookies'] == "9f6e7t3j5l1k2s0x":
                print(request.headers['mp3'])
                data = {"result": "success","msg": "upload log ok."}
                return data 
        elif request.form['action'] == 'upload':        
            if request.cookies['cookies'] == "9f6e7t3j5l1k2s0x":
                print(request.files)
                request.files['file'].save('./1024.mp3')
                file_bytes = request.files['file'].stream.read()
                data = {"result": "success","msg": "upload ok."}
                response = make_response(data)
                header_add = {'upload':'ok'}
                response.headers = header_add
                return response                 

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=5000, debug=True)

上段为Flask服务器部分,下段为requests客户端部分;

import requests

def get_status(r):
	status_dict = {}
	status_dict['url'] = r.url
	status_dict['encoding'] = r.encoding
	status_dict['status_code'] = r.status_code
	status_dict['request_headers'] = r.request.headers
	status_dict['request_body'] = r.request.body
	status_dict['respond_headers'] = r.headers
	status_dict['respond_body'] = r.text
	status_dict['respond_body_bytes'] = r.content
	status_dict['respond_body_json'] = r.json()
	print('-'*60)
	print(status_dict)
	print('-'*60)
	return status_dict

url = 'http://127.0.0.1:5000'
r = requests.get(url, params = {'status':'ok'}, timeout = (5, 27))
if r.status_code == requests.codes.ok:
	get_status(r)	
else:	
	print(r.raise_for_status())

r = requests.put(url, data = {'User':'FK2000','Password':'12345'})

cookies = {'cookies':r.json()['cookies']}
form_data = {'action':'upload_log','type':'mp3'}
key_value = {'key':'mp3'}
headers_add = {'mp3':'ok'}
r = requests.post(url, data = form_data, 
                      params = key_value, 
                      headers = headers_add,
                      cookies = cookies)

form_data = {'action':'upload','type':'mp3'}
with open('./1024.mp3','rb') as f:
	file_data = f.read()
	r = requests.post(url, data = form_data, 
	                       params = key_value, 
	                       headers = headers_add,
	                       cookies = cookies,
	                       files = {'file':file_data})
print(r.headers['upload'])
r = requests.options(url)  
print(r.headers['Allow'])
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:48:54  更:2022-04-28 11:50:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:35:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码