标签分类 技术文章:
当前位置:首页 > Python技术文章 > python怎么发送post

python发送post的方法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:256

这篇文章主要知识点是关于python、Python使用post及get方式提交数据的实例 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python高级编程
Python高级编程全书中文第2版
  • 类型:Python大小:76.8 MB格式:PDF出版:人民邮电出版社作者:贾沃斯基
立即下载
Python和HDF5大数据应用
  • 类型:Python数据分析大小:13.8 MB格式:PDF出版:人民邮电出版社作者:科莱特
立即下载

更多Python相关的学习资源可以参阅 Python电子书程序设计电子书 等栏目。

python怎么发送post

我们使用postman进行接口测试的时候,发现POST请求方式的编码有3种,具体的编码方式如下:

python怎么发送post

A:application/x-www-form-urlencoded ==最常见的post提交数据的方式,以form表单形式提交数据

B:application/json ==以json格式提交数据(推荐学习:Python视频教程)

C:multipart/form-data ==一般使用来上传文件(较少用)

我们使用python做接口测试时,经常使用的方式为:requests.post(url,data),具体我们使用不同的编码方式来做接口测试:

A:Requests以form表单形式发送post请求,具体代码实现如下所示:

import requests,json
url = 'http://httpbin.org/post'
data = {'key1':'value1','key2':'value2'}
r =requests.post(url,data)
print(r)
print(r.text)
print(r.content)

B:Requests以json形式发送post请求,具体代码实现如下所示:

import requests,json
url_json = 'http://httpbin.org/post'
data_json = json.dumps({'key1':'value1','key2':'value2'})   #dumps:将python对象解码为json数据
r_json = requests.post(url_json,data_json)
print(r_json)
print(r_json.text)
print(r_json.content)

C:Requests以multipart形式发送post请求,具体代码实现如下所示:

import requests,json
url_mul = 'http://httpbin.org/post'
files = {'file':open('E://report.txt','rb')}
r = requests.post(url_mul,files=files)
print(r)
print(r.text)
print(r.content)

注:E://report.txt==自定义,具体根据自己放的目录来定义,内容随意

Python使用post及get方式提交数据的实例

最近在使用Python的过程中,发现网上很少提到在使用post方式时,怎么传一个数组作为参数的示例,此处根据自己的实践经验,给出相关示例:

单纯的post请求:

def http_post():
  url = "http://152.1.12.11:8080/web"
  postdata = dict(d=2, p=10)
  post = []
  post.append(postdata)
  req = urllib2.Request(url, json.dumps(post)) #需要是json格式的参数
  req.add_header('Content-Type', 'application/json') #要非常注意这行代码的写法
  response = urllib2.urlopen(req)
  result = json.loads(response.read())
  print result

需要token时写法如下:

def http_post():
  url = "http://152.1.12.11:8080/web"
  postdata = dict(d=2, p=10)
  post = []
  post.append(postdata)
  req = urllib2.Request(url, json.dumps(post))
  access_token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1bmlxdWVfbmFtZSI6I..........'
  req.add_header('Authorization', access_token) #header中添加token
  req.add_header('Content-Type', 'application/json') #要非常注意这行代码的写法
  response = urllib2.urlopen(req)
  result = json.loads(response.read())
  print result

get方式的写法如下:

def get_access_token():
  local_url = 'http://152.1.1.1:8080/web'
  response = urllib2.urlopen(local_url).read()
  resp = json.loads(response)
  print resp

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到python ddt数据驱动实例代码、 python测试opencv时imread导致、 如何由java转学python、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:Python抓取网页乱码的解决方法分析

下一篇:python进入的方法步骤

展开 +

收起 -

学习笔记
网友NO.960614

Python3 利用requests 库进行post携带账号密码请求数据的方法

如下所示: import urllib,json,requestsurl = 'http://127.0.0.1:8000/account/login'headers = {}data = {'username':'asd','pwd':'123456$'}request = requests.post(url=url, data=data,json=True,headers=headers)response = request.content.decode()#需要携带请求头信息的可以全部写在headers里面,data就是请求体,需要携带其他信息的也可以另外再加print(response)#一般情况下就可以请求成功得到返回值 如果请求失败,那么就是跨域问题或者参数错误。 以上这篇Python3 利用requests 库进行post携带账号密码请求数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.528713

python用post访问restful服务接口的方法

具体代码如下: import requestsimport jsondata={"ids": ["00007190","00007191"]}url="http://XXXXX"data_json = json.dumps(data)headers = {'Content-type': 'application/json'}response = requests.post(url, data=data_json, headers=headers)print(response.text) 以上这篇python用post访问restful服务接口的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.825949

基于Python的Post请求数据爬取的方法详解

为什么做这个 和同学聊天,他想爬取一个网站的post请求 观察 该网站的post请求参数有两种类型:(1)参数体放在了query中,即url拼接参数(2)body中要加入一个空的json对象,关于为什么要加入空的json对象,猜测原因为反爬虫。既有query参数又有空对象体的body参数是一件脑洞很大的事情。 一开始先在apizza网站 上了做了相关实验才发现上面这个规律的,并发现该网站的请求参数要为raw形式,要是直接写代码找规律不是一件容易的事情。 源码 import requestsimport jsonheaders = { 'Accept':'application/json, text/javascript, */*; q=0.01', 'X-Requested-With':'XMLHttpRequest', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36', 'Content-Type':'application/json', 'Accept-Encoding':'gzip, deflate', 'Accept-Language':'zh-CN,zh;q=0.8', 'Cache-Control':'no-cache', }#空的对象,body参数data = {}data = json.dumps(data)page = 0url = '网站地址,后面为参数?param1=1m1='+str(page)response = requests.post(url = url,data=data ,headers =headers )print(response.url)print(response.text) 总结 现在相关工具中发现现象 请求方式确定:post还是get或者其它 参数类型:form-data还是raw或者其它 参数位置:若是post请求,在query中还是body中,还是二者皆有 ps:python requests 发起http POST 请求 python requests 发起http POST 请……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明