python模拟浏览器文件上传,csrf放行
2024-08-31 13:38:10
服务器端视图函数
from django.shortcuts import render,HttpResponse
from django.views.decorators.csrf import csrf_exempt # Create your views here.
@csrf_exempt#这个可以对csrf进行放行
def up(request,):
file_list = request.FILES.getlist('save_data')
for i in file_list:
for x in i :
print(x)
return HttpResponse('ok')
客户端
import time
import datetime
import hashlib
import os
import random
import sys
import requests
import json from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'http://127.0.0.1:8000/up/'#文件上传的url headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0',
'Referer': url
} multipart_encoder = MultipartEncoder(
fields = {
'save_name': '论坛.txt',#文件名
'save_data': ('论坛.txt', open('论坛.txt', 'rb'), 'application/octet-stream')
},
boundary = '-----------------------------' + str(random.randint(1e28, 1e29 - 1))
) headers['Content-Type'] = multipart_encoder.content_type
#请求头必须包含一个特殊的头信息,类似于Content-Type: multipart/form-data; boundary=${bound} responseStr = requests.post(url, data=multipart_encoder, headers=headers)
print(responseStr.text)#服务器的响应
最新文章
- 罗永浩专访全文记录(转自好奇心日报-http://www.qdaily.com/)
- jQuery+ASP.NET MVC基于CORS实现带cookie的跨域ajax请求
- [20160804]synchronized
- asp.net 父窗体获取子窗体的返回值,可用来对父窗体局部更新
- java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)
- SSH整合_struts.xml 模板
- JS数组定义
- C/C++基本数据类型所占字节数
- POJ 1781 In Danger Joseph环 位运算解法
- iOS学习笔记---简单的学习总结
- js模拟静态方法
- gitlab wiki 500
- gogogo
- 【Miller-Rabin随机判素数算法】
- css坑了我一下下之line-height
- Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作
- sql心跳
- SQL语句创建数据库及表
- ubuntu(14.04) sphinx安装
- IOS沙盒机制