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

时间:2021-05-22

本文实例讲述了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程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章