python:post请求业务、调用微信api监控业务
vim post.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import os
import datetime
import requests
import urllib,urllib2
import sys
import simplejson reload(sys)
sys.setdefaultencoding('utf-8')
#POST请求业务接口
def run(method,url,data):
#http请求头信息
headers = {
'content-type':'application/json', #内容类型,用于定义网络文件的类型和网页的编码
'Authorization':'Basic aGVhbHRoY2hlY2tAaW50ZWxsaWNyZWRpdC5jbjpqZXJyeTM5OlBASGVhbHRoY2hlY2s=' #用于客户端在访问受密码保护的网页时识别自己的身份
}
if method == 'POST':
data_json = json.dumps(data)
start_time = datetime.datetime.now()
raw = requests.post(url,data_json,headers=headers) #post请求,发送json格式的数据
end_time = datetime.datetime.now()
Rtime=(end_time-start_time).microseconds / 1000 #请求的时间,单位ms
status = raw.status_code
subject = '%s status:\t%s\n%s 时延:%s' %(url,status,url,Rtime)
return subject
#获取access_token
def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret #企业微信获取token的url
print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url) #请求token_url
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token'] #获取access_token,这里用来作身份验证,后端代码生成一个token,返回给客户端,客户端储存token
return token
#给企业微信发消息
def senddata(access_token,subject):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":"ZhangShun", #企业号中的用户帐号
"toparty":"1", #企业号中的部门id
"msgtype":"text", #消息类型
"agentid":"1000002", #企业号中的应用id
"text":{
"content":subject #发送的内容
},
"safe":"0"
}
# send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
send_request = urllib2.Request(send_url, send_data) #请求企业微信的发送消息接口
response = json.loads(urllib2.urlopen(send_request).read())
print str(response) if __name__ == '__main__':
#业务api接口
url = 'http://1.1.1.1:8080/api/v1/'
#POST请求的body
data = {
"name":"二三三",
"pid":"4A99881B1C1AEF6B7220245439FEA196A1F6BDF01C3FD8E1FA750640497419FF",
"mobile":"BDA6E1DE2852BA16AE1F88A7D426AD26CECCBB5F570122EAA368CF0A03313D12" }
subject = run('POST',url,data)
#企业微信
corpid = 'xxxxxxxxxxxxxxx' #CorpID是企业号的标识
corpsecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #corpsecretSecret是企业微信应用的密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,subject)
python:post请求业务、调用微信api监控业务的更多相关文章
- VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能调用的API封装库
API函数很强大,但是声明的时候比较繁琐. 我开发的封装库,包括窗口.键盘.鼠标.消息等常用功能.用户不需要添加API函数的声明,就可以用到API的功能. 在VBA.VB6的引用对话框中引用API.t ...
- 用jQuery调用微信api生成二维码
其实这个,也没什么实际用途,只能测试一下api能不能用. 1. 用Chrome打开一个https://api.weixin.qq.com/页面,会返回一个错误信息,忽略不管,F12打开控制台 2. 控 ...
- Spring-Security-OAuth2调用微信API
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.an ...
- C# 数字证书微信API调用使用参考事例
X.509 v.3 证书的方法.一个比较完整的调用 微信 API的示例: private stringGetResponseResult() { string strRespons ...
- .net Core 调用微信Jsapi接口,H5解析二维码
项目里需要用到扫描二维码,自己实现,不会. 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库.如果二维码比较清晰,用这种效果也不错 调用微信扫一扫功能,这种效果很好 ...
- 使用Retrofit2调用HTTP API
前言 Retrofit会将你的HTTP接口调用转换为java的interface,你不必去实现这个接口,交给Retrofit来创建动态代理. 首先,贴上官网和Javadoc. 官网上的例子 加依赖,下 ...
- WAP调用微信支付https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1
公司做的一个购物网站 之前微信版的网站要搬在webView上 可是微信支付是个问题 , 在外部浏览器怎么都发不起微信请求 , 原因是因为页面调用的微信浏览器自带JSAPI 在外部浏览器无法调用,但 ...
- 为什么 API 监控对于任何业务来说都重要?
对于商务运算来说一个比较稳定的趋势在于对 API 日渐增长的依赖性,几乎每一个代码级交互过程都会调用 API 来收集数据或触发某些关键过程.没有 API ,你将无法与同伴进行文件交流,没有 API , ...
- asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文
近公司项目上在开发微信服务号的接口,需要给用户回复图片或语音或视频,这个时候就需要用到 上传下载多媒体文件接口,微信在这方面推荐采用的是开源函数库curl实现的,CURL项目包括很多版本,我主要测试的 ...
随机推荐
- NEERC2017:L - Laminar Family
传送门 很容易想到,离线按路径长度从大到小排个序,用树链剖分加颗支持区间cover的线段树就好了 代码: #include<cstdio> #include<iostream> ...
- radio与img对齐 (CSS3)
实现方式: html: <div class="pay-four"> <div class="pay-four-border"> < ...
- JS的this原理
转载阮一峰博客: www.ruanyifeng.com/blog/2018/06/javascript-this.html 一.问题的由来 学懂 JavaScript 语言,一个标志就是理解下面两 ...
- 牛客寒假6-J.迷宫
链接:https://ac.nowcoder.com/acm/contest/332/J 题意: 你在一个 n 行 m 列的网格迷宫中,迷宫的每一格要么为空,要么有一个障碍. 你当前在第 r 行第 c ...
- Hungary Algorithm国外板子
Codeforces 1107一题除了dp做法还有二分带权匹配O(n^3)做法,国外网友的板子时间非常优秀,但矩阵设定的事情并不是很懂-- //Codeforces 1107F const int m ...
- python部分 + 数据库 + 网络编程
PS:附上我的博客地址,答案中略的部分我的博客都有,直接原标题搜索即可.https://www.cnblogs.com/Roc-Atlantis/ 第一部分 Python基础篇(80题) 为什么学习P ...
- substring和substr,slice和splice
substring 和 substr 这二货都是针对字符串而言的,且都是返回一个副本,而不是在原字符串上直接操作. 上代码: var str = '0123456789'; console.log( ...
- JavaScprit30-5 学习笔记
最近忙这忙那...好久没看视频学习了...但是该学的还是要学. 这次要实现的效果是利用 flex 的 特性 来实现 可伸缩的图片墙演示 页面的展示...: 效果挺炫酷啊... 那么就来总结一下 学到了 ...
- IE浏览器兼容background-size
background-size是CSS3新增的属性,IE8以下不支持,通过滤镜实现background-size效果 background-size:contain; // 缩小图片来适应元素的尺寸( ...
- uvm_reg_defines——寄存器模型(四)
文件: src/marcos/uvm_reg_defines 类: 无 该文件是寄存器模型src/reg/* 文件对于的宏文件,主要定义了寄存器地址位宽,寄存器数据位宽,字节的大小.计算机从最初的8, ...