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项目包括很多版本,我主要测试的 ...
随机推荐
- webpack结合vue使用(五)
webpack结合vue使用步骤如下: 安装 vue 的包 : cnpm i vue -S 由于在 webpack 中,锐减使用 .vue 这个组件模板文件定义组件,所以需要安装能解析这种文件的第三方 ...
- socketserver+socket实现较为复杂的ftp,支持多用户在线
客户端(ftp_client.py) import socketserver,json,hashlib,os from pymongo import MongoClient ''' *****要点** ...
- 牛客寒假5-A.炫酷双截棍
链接:https://ac.nowcoder.com/acm/contest/331/A 题意: 小希现在手里有一个连着的两块木条,长度分别为l1l1,l2l2,木条之间有一个无摩擦的连接点,木条之间 ...
- BZOJ1415(期望dp)
解法: 首先bfs预处理go数组:可可在j点时聪聪在点i是怎样贪心走的,这是为了之后O(1)获取转移线路. 然后dfs记忆化一下f[i][j],代表从i到j的期望,对于每层:将所有情况的期望值相加.边 ...
- bzoj1538 [NWERC2017]High Score
网上的题解都很奇怪.. 经过相当长时间的思考,有了一个有效(自认为)的解法 设某一种合法分配方案完成后三个数分别变为a,b,c,其中a>=c,b>=c 此时如果让c减1,让a或b加1(设让 ...
- Nginx 配置https 开启ssl 同时支持http
server { listen ; listen 443 ssl; server_name default; index index.html index.php; root /www/html; a ...
- PHP知识点总结2
PHP5数据类型 String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值). 字符串 你可 ...
- WebService_Demo
简述 使用IDEA开发webservice服务,从零开始一步一步指引你. 服务端开发 首先创建一个webservice项目,如下图 创建完项目后idea会帮我们创建一个类,helloword,我们把它 ...
- 11.JAVA-Object类之finalize(),clone(),toString()等方法覆写
1.Object介绍 Object类是一个特殊的类,是所有类(包括数组,接口 )的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类,所以可以通过向上转型的方法使用 ...
- 我也质疑下petshop
很多人都研究过petshop,我开始认识分层架构也是从研究这个petshop开始的.但是我发现很多人一谈三层架构就是 petshop那一套东西.实体类,DAL,BLL那一套东西.首先我不 ...