接口基本信息

接口地址:http://127.0.0.1:8080/testpro/api/common/service
调用方式:POST
参数:JSON格式字符串,放到独立的.json文件中
返回:调用码返回200且,返回内容有效,则验证成功

代码示例

使用urllib.request调用接口

urlopen()只能用于一些简单的资源请求

# 爬百度数据
from urllib import requestresponse = request.urlopen("http://www.baidu.com")
fi = open("my_baidu.txt","w")
page = fi.write(str(response.read()))
fi.close()//必须要关闭资源#处理get请求,不传data,则为get请求
import urllib
from urllib.request import urlopen
from urllib.parse import urlencodeurl='http://www.xxx.com/login'
data={"username":"admin","password":123456}
req_data=urlencode(data)#将字典类型的请求数据转变为url编码
res=urlopen(url+'?'+req_data)#通过urlopen方法访问拼接好的url
res=res.read().decode()#read()方法是读取返回数据内容,decode是转换返回数据的bytes格式为strprint(res)#处理post请求,如果传了data,则为post请求
import urllib
from urllib.request import Request
from urllib.parse import urlencodeurl='http://www.xxx.com/login'
data={"username":"admin","password":123456}
data=urlencode(data)#将字典类型的请求数据转变为url编码
data=data.encode('ascii')#将url编码类型的请求数据转变为bytes类型
req_data=Request(url,data)#将url和请求数据处理为一个Request对象,供urlopen调用
with urlopen(req_data) as res:res=res.read().decode()#read()方法是读取返回数据内容,decode是转换返回数据的bytes格式为str
print(res)

示例二 :

import urllib
from urllib.request import urlopen
from urllib.request import Request
from urllib.parse import urlencode
import json url='http://127.0.0.1:8080/testpro/api/common/service'
#使用 with as 打开文件,不用自己单独关闭资源
with open("myFirstPythonPrj/requestDataTxt.json","r",encoding='utf-8') as f:print(f.read())#执行完read后,指针跑到了 文件最后,故后边json.load(f)会报错print("现在文件对象位置:%d" % f.tell())     # 返回文件对象当前位置f.seek(0,0)    # 移动文件对象至第一个字符dict_data = json.load(f)print(dict_data)data = urlencode(dict_data)#将字典类型的请求数据转变为url编码data = data.encode('ascii')#将url编码类型的请求数据转变为bytes类型headers = {'content-type': 'application/json'}req_data = Request(url,data, headers=headers)#将url和请求数据处理为一个Request对象,供urlopen调用res = Request.post(url,data, headers=headers)print(res)with urlopen(req_data) as res:res = res.read().decode()#read()方法是读取返回数据内容,decode是转换返回数据的bytes格式为strprint(res)

使用requests实现接口调用

requests是对urllib的进一步封装,在使用上更加的方便。
需要提前安装requests模块,使用命令:pip install requests

import json
import requestsurl='http://127.0.0.1:8080/testpro/api/common/service'#使用 with as 打开文件,不用自己单独关闭资源
with open("myFirstPythonPrj/requestDataTxt.json","r",encoding='utf-8') as f:header={"Content-Type":"application/json"}datas = json.load(f)get_res = requests.get(url,headers=headers,params=None)# post_res = requests.post(url,headers=headers,data=None,json=None)post_res = requests.post(url, json=datas,headers=header)print("状态码:"+ str( r.status_code ) ) #打印状态码print(post_res.text)

get_res.text得到的是str数据类型。
get_res.content得到的是Bytes类型,需要进行解码。作用和get_response.text类似。
get_res.json得到的是json数据。

Python-GET/POST请求(urllib.request与requests)使用Python测试POST接口(代替postman)相关推荐

  1. python爬虫用urllib还是reques,python爬虫中urllib.request和requests有什么区别?

    在学习python爬虫,想要检索request相关内容时,往往会出现urllib.request和requests这两个词,urllib.request和requests都是python爬虫的模块,其 ...

  2. Python 爬虫篇 - 通过urllib.request伪装成浏览器绕过反爬虫爬取网页所有连接实例演示,urllib2库的安装

    新版的 python 把 urllib2 改成了 urllib.request,所以直接导入 urllib2 会报错. 这是我通过 chrome92 版本的浏览器发送请求的时候抓到的头部信息,只要我在 ...

  3. Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》

    Python语言用urllib.request模块抓取页面非常简单,再将抓取的页面内容用re模块解析,找出自己想要的东西.下面就就此方法来抓取网易公开课之<麻省理工学院公开课:算法导论>, ...

  4. 网络请求urllib库的基本使用 ----------python的爬虫学习

    简单的网络请求: from urllib import request url = "http://www.baidu.com" rep=request.urlopen(url) ...

  5. 【Python爬虫】使用urllib.request下载已知链接的网络资源

    如果有这样一个场景,我们的EXCEL某一列记录了好多(图片.视频.音频)链接A,另外一列记录了链接名称B,现在我们想要自动下载这些链接的文件,我们应该怎样处理? 1.循环去excel取值,将A和B存入 ...

  6. python发post请求json_python request 以json形式发送post请求的正确的姿势

    一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行,请求报头,消息主题. 以json串提交数据,编码格式: application/json, 必须加上 impor ...

  7. python get方法请求参数_python中requests库get方法带参数请求

    起因是想爬五等分的花嫁的漫画.这是其中的一个坑 先上代码 data={'cid':567464,'page':1,'key':'','language':1,'gtk':6,'_cid':567464 ...

  8. python获取get请求的耗时时间_突破python爬取极限,超牛逼的异步协程爬虫

    异步协程 1. event_loop 2. coroutine 中文翻译叫协程,在 Python 中昌指代为协程对象类型,可以将协程对象注册到时间循环中被调用.使用 async 关键字来定义的方法在调 ...

  9. python模拟ajax请求_短信炸弹—用Python模拟ajax请求

    我们经常使用各种脚本发送网络请求,提交各种形式的body数据,所以Content-Type的类型也有很多种. 常见的取值有: application/xml : 在 XML RPC,如 RESTful ...

最新文章

  1. Scikit-Learn大变化:合并Pandas
  2. 零基础入门学习Python(29)pickle模块
  3. Android平台 Psensor传感器调试方法
  4. 云消防大数据_消防云大数据app下载-消防云大数据下载v1.1.5 安卓版-西西软件下载...
  5. android的单选按钮xml语法,android-通过数组而不是xml布局中的单独字符串设置单选按钮组中单选按钮的文本...
  6. 快速简易的分解歌词文件
  7. string StartsWith 方法 Https
  8. 在web开发领域,java已死是定局。
  9. 【回归预测】基于matlab布谷鸟算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1555期】
  10. 安卓频谱仪audiotool中文_频谱分析仪 TEK2712
  11. oracle查表的更新时间,Oracle 查询倒叙查询所有表更新时间
  12. Elasticsearch聚合学习之二:区间聚合
  13. 淘宝下架苹果iOS充值业务,马云或在为支付宝扫除障碍
  14. 农业虫害识别相关论文——调研整理
  15. 2018 届互联网校招高薪清单曝光:25 万年薪只是白菜价?
  16. allegro放置器件无法放_Allegro怎么放置后台元器件?
  17. 百度地图多个marker标点+点聚合
  18. 用win10怎么练计算机一级,你真的懂Win10吗?升Win10后必做的9件事
  19. vue JsBarcode 常用参数设置
  20. 【Linux_SVN忽略文件提交——已经存在仓库里面的文件夹怎么忽略提交】

热门文章

  1. libxxx.so has text relocations. This is wasting memory and prevents...解决方案
  2. 大数据中心成立ppt_大数据中心建设思路ppt课件
  3. 学科竞赛生的十条“军规”
  4. 【狮子数学】04函数极限的计算
  5. spring事务之事务挂起和事务恢复源码
  6. 伸手系列-谷歌google支付-java
  7. sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry
  8. [古典密码]:Vigenere cipher 维吉尼亚密码
  9. 慕尼黑工业大学计算机博士申请条件,慕尼黑工业大学博士申请.doc
  10. 快速打开打印OFD电子发票