首页 > 编程 > Python > 正文

python实现发送form-data数据的方法详解

2019-11-25 11:39:23
字体:
来源:转载
供稿:网友

本文实例讲述了python实现发送form-data数据的方法。分享给大家供大家参考,具体如下:

源代码

-----------------------------279361243530614
Content-Disposition: form-data; name="parent_dir"

/
-----------------------------279361243530614
Content-Disposition: form-data; name="file"; filename="f5.txt"
Content-Type: text/plain

#NodeAddressimport sysimport pycontrol.pycontrol as pcimport timeimport csvimport sslssl._create_default_https_context = ssl._create_unverified_contextb = pc.BIGIP(hostname = '10.4.170.160',username = 'zjtlcb',password = 'xxx',fromurl = True,  wsdls=['LocalLB.NodeAddress'])node = b.LocalLB.NodeAddressprint nodeprint dir(node)ipaddress='10.4.161.148'print dir(node)print node.get_session_enabled_state(node_addresses=[ipaddress])print node.get_session_status(node_addresses=[ipaddress])print node.get_monitor_status(node_addresses=[ipaddress])print node.get_object_status(node_addresses=[ipaddress])print node.set_monitor_state(node_addresses=[ipaddress],states=['STATE_FORCED_DISABLED'])print node.get_session_enabled_state(node_addresses=[ipaddress])print node.get_session_status(node_addresses=[ipaddress])print node.get_monitor_status(node_addresses=[ipaddress])print node.get_object_status(node_addresses=[ipaddress])print node.set_monitor_state(node_addresses=[ipaddress],states=['STATE_ENABLED'])print node.get_session_enabled_state(node_addresses=[ipaddress])print node.get_session_status(node_addresses=[ipaddress])print node.get_monitor_status(node_addresses=[ipaddress])

-----------------------------279361243530614--

# !/usr/bin/env python# -*- coding: utf-8 -*-import urllib2import urllibimport cookielibimport jsonimport httplibimport reimport requestsimport StringIOimport timeimport sysimport jsonimport reimport randomfrom urllib import quotefrom requests_toolbelt import MultipartEncoderimport times = requests.session()username='015208@zjtlcb.com'password='newja01'myurl='http://10.4.48.2:8000/accounts/login?next=/'headers = {  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0'   }response = s.get(myurl, headers=headers,timeout=10)a= response.content#<form action="" method="post" class="con"><input type='hidden' name='csrfmiddlewaretoken' value='ZWnUDf5XVX0kagjIoJLKyU8UdO8KBGFn' />#p=re.compile('.*?<token>(.*?)</token>*')p=re.compile('.*<form.*value=/'(.*?)/'.*/s+/>',flags=re.S)m=p.match(a)print mtoken= m.group(1)print tokenmyurl='http://10.4.48.2:8000/accounts/login/?next=/'headers = {  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0'   }data={'csrfmiddlewaretoken':token,'login':username,'password':password,'next':'/'}response = s.post(myurl, data=data, headers=headers,timeout=10)print response.contentu1='http://10.4.48.2:8000/api2/repos/?type=mine&_=1553493865054'a= s.get(u1).contentprint aprint type(a)b=json.loads(a)print bprint type(b)for i in range(len(b)):  print str(b[i]).decode('unicode-escape')  if b[i]['name'] == 'perl':    uploadid= b[i]['id']print uploadidctime=time.time()ctime=int(ctime)u2='http://10.4.48.2:8000/ajax/repo/%s/file_op_url/?op_type=upload&path=%s&_=%s' %(uploadid,'%2F',ctime)print u2headers = {  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',  'X-Requested-With':'XMLHttpRequest'   }response=s.get(u2,headers=headers)b= response.contentprint type(b)print bc=json.loads(b)d= c['url']u3=dheaders = {  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',  'X-Requested-With':'XMLHttpRequest'   }m=MultipartEncoder(  fields={    "parent_dir":'/',    "name":'file',    "filename":'abc.txt',    'file':('abc.txt',open('abc.txt','rb'),'text/plain')  })headers['Content-Type']=m.content_typeresponse=s.post(u3,headers=headers,data=m,timeout=20)print response.content

 

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表