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

yipeiwu_com6年前Python基础

本文实例讲述了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

#NodeAddress
import sys
import pycontrol.pycontrol as pc
import time
import csv
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
b = pc.BIGIP(
hostname = '10.4.170.160',
username = 'zjtlcb',
password = 'xxx',
fromurl = True,
  wsdls=['LocalLB.NodeAddress'])
node = b.LocalLB.NodeAddress
print node
print 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 urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
import StringIO
import time
import sys
import json
import re
import random
from urllib import quote
from requests_toolbelt import MultipartEncoder
import time
s = 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 m
token= m.group(1)
print token
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'
   }
data={'csrfmiddlewaretoken':token,'login':username,'password':password,'next':'/'}
response = s.post(myurl, data=data, headers=headers,timeout=10)
print response.content
u1='http://10.4.48.2:8000/api2/repos/?type=mine&_=1553493865054'
a= s.get(u1).content
print a
print type(a)
b=json.loads(a)
print b
print 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 uploadid
ctime=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 u2
headers = {
  '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.content
print type(b)
print b
c=json.loads(b)
d= c['url']
u3=d
headers = {
  '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_type
response=s.post(u3,headers=headers,data=m,timeout=20)
print response.content

 

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

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

相关文章

python中的set实现不重复的排序原理

python中的set实现不重复的排序原理

最近在尝试写选课系统的时候遇到一个问题:   1、存在两个类 School、Teacher ;   2、School实例中包含多个Teacher的实例,但又不可重复   本人想到在Sch...

对Pytorch中Tensor的各种池化操作解析

AdaptiveAvgPool1d(N) 对一个C*H*W的三维输入Tensor, 池化输出为C*H*N, 即按照H轴逐行对W轴平均池化 >>> a = torch...

Python实现将HTML转换成doc格式文件的方法示例

本文实例讲述了Python实现将HTML转换成doc格式文件的方法。分享给大家供大家参考,具体如下: 网页上的一些文章,因为有格式的原因,它们在网页上的源码都是带有html标签的,用cs...

详解python字节码

Python对不可变序列进行重复拼接操作效率会很低,因为每次都会生成一个新的对象,解释器需要把原来对象中的元素先复制到新的对象里,然后再追加新的元素。 但是CPython对字符串操作进行...

Python实现建立SSH连接的方法

本文实例讲述了Python实现建立SSH连接的方法。分享给大家供大家参考。具体实现方法如下: 我需要实现一个Windows下远程连接到SSH服务器执行命令的功能,所以就在网上找资料。我的...