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项目包括很多版本,我主要测试的 ...
随机推荐
- pip 参数
pip 自带参数 pip --help pip install 自带参数 pip install --help
- .Net Core应用框架Util介绍(二) 转
Util的开源地址 https://github.com/dotnetcore/util Util的开源协议 Util以MIT协议开源,这是目前最宽松的开源协议,你不仅可以用于商业项目,还能把Util ...
- Servlet | 访问不同格式文件(PDF、doc)
核心代码 //设置响应内容类型为PDF类型 response.setContentType("application/pdf"); request.getRequestDispat ...
- [題解]TYVJ_2032(搜索/最短路)
搜索:https://www.cnblogs.com/SiriusRen/p/6532506.html?tdsourcetag=s_pctim_aiomsg 來自 SiriusRen 數據範圍小,考慮 ...
- 使用tmodjs
1.安装 npm install -g tmodjs 2.配置 我的模板都放在tpl文件夹中,htmls用于存放模板页面,每一个后缀名都是.html,而build用于存放编译后输出的模板js. 如果不 ...
- springmvc整合elasticsearch
网上大多时关于springboot整合的,也有spring的,但是 坑太多,都没法愉快的玩耍 这篇让我整合成功 https://www.cnblogs.com/sunny1009/articles/7 ...
- 安装wamp时出现httpd.exe无法找到组件MSVCR100.dll的解决办法
很多朋友在安装wamp server时会出现以下错误,安装之后无法启动httpd.exe服务. --------------------------- httpd.exe - 无法找到组件 ----- ...
- Oracle 恢复数据后,数据库中中文变成问号解决方法
1.右击---我的电脑---环境变量 2.新增环境变量 变量名:LANG=zh_CN.GBK NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 3.重启PLSQL或 ...
- Struts 2中访问Servlet API的几种方法小结
1.使用ActionContext Action运行期间所用到的数据都保存在ActionContext中,例如session.客户端提交的参数等,ActionContext是Action的一个上下文对 ...
- Idea注释参数报错,控制台乱码问题解决方法
idea虽然工具非常好用,但是他的一些解决方法网上非常的少,有些压根没有,解决这些问题非常浪费时间 1.最近在工作中发现一个问题,使用ant打包后,控制台总是报错,提示信息还是乱码的,吓得我赶紧用回了 ...