mytest3.py-api接入平台获取数据
mytest3.py-api接入平台获取数据
- import base64
- import datetime
- import hashlib
- import urllib
- import urllib.parse
- import requests
- import hmac
- # 火币网上的接入(原来的代码中有的api地址和账户信息)
- TRADE_URL = "https://api.huobi.pro"
- ACCESS_KEY = "5acf7fa3-2b53abe3-5d0e6b2e-885f5"
- SECRET_KEY = "13439487-047b4da1-87e463f0-efa3c"
- # 返回api产生的数据
- def api_key_get(params, request_path):
- method = 'GET'
- timestamp = datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S')
- params.update({'AccessKeyId': ACCESS_KEY,
- 'SignatureMethod': 'HmacSHA256',
- 'SignatureVersion': '2',
- 'Timestamp': timestamp})
- host_url = TRADE_URL
- host_name = urllib.parse.urlparse(host_url).hostname
- host_name = host_name.lower()
- params['Signature'] = createSign(params, method, host_name, request_path, SECRET_KEY)
- url = host_url + request_path
- return http_get_request(url, params)
- # 创建签名字符串
- def createSign(pParams, method, host_url, request_path, secret_key):
- sorted_params = sorted(pParams.items(), key=lambda d: d[0], reverse=False)
- encode_params = urllib.parse.urlencode(sorted_params)
- payload = [method, host_url, request_path, encode_params]
- payload = '\n'.join(payload)
- payload = payload.encode(encoding='UTF8')
- secret_key = secret_key.encode(encoding='UTF8')
- digest = hmac.new(secret_key, payload, digestmod=hashlib.sha256).digest()
- signature = base64.b64encode(digest)
- signature = signature.decode()
- return signature
- # 返回get请求获取数据
- def http_get_request(url, params, add_to_headers=None):
- headers = {
- "Content-type": "application/x-www-form-urlencoded",
- 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
- }
- if add_to_headers:
- headers.update(add_to_headers)
- postdata = urllib.parse.urlencode(params)
- response = requests.get(url, postdata, headers=headers, timeout=5)
- try:
- if response.status_code == 200:
- return response.json()
- else:
- return
- except BaseException as e:
- print("httpGet failed, detail is:%s,%s" % (response.text, e))
- return
- if __name__ == '__main__':
- params = {'account-id': '4656265'}
- request_path = '/v1/account/accounts/%s/balance' % params['account-id']
- res = api_key_get(params, request_path)
- print(res)
- print(type(res))
mytest3.py-api接入平台获取数据的更多相关文章
- C#/.NET使用HttpWebRequest、SqlBulkCopy从API获取数据批量插入DB
小弟新手程序员一枚,代码技术和文章水平均不才.所写文章均为对自己所写所学代码的简单记录,可能对于老手程序员营养价值不高,望莫见怪. 我工作上有个需求:从某处API接口上获取数据(大约1W条而已)并插入 ...
- ASP.NET Web API实践系列07,获取数据, 使用Ninject实现依赖倒置,使用Knockout实现页面元素和视图模型的双向绑定
本篇接着上一篇"ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API",尝试获取数据. 在Models文件夹下创 ...
- 使用腾讯开发平台获取QQ用户数据资料
<今天是七夕:祝大家七夕嗨皮,前可么么哒,后可啪啪啪> Tips:本篇博客将教你如何使用腾讯开发平台获取QQ用户资料 ----------------------------------- ...
- 微信公众平台开发,API接入与推送事件(1)
博客好久没有更新了,今天说说微信开发.微信开发的好多初学者都会又这样的迷惑,微信开发到底是什么?其实微信开发本质我和我们的网站开发没有太大的区别.我们常说的微信开发也就是公众号开,微信公众号分为三个类 ...
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
腾讯云图片鉴黄集成到C# 官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...
- vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全
https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...
- 从api接口获取数据-okhttp
首先先介绍下api接口: API:应用程序接口(API:Application Program Interface) 通常用于数据连接,调用函数提供功能等等... 从api接口获取数据有四种方式:Ht ...
- 使用Vue.js和Axios从第三方API获取数据 — SitePoint
更多的往往不是,建立你的JavaScript应用程序时,你会想把数据从远程源或消耗一个[ API ](https:/ /恩.维基百科.org /维基/ application_programming_ ...
- 百度地图API获取数据
目前,大厂的服务范围越来越广,提供的数据信息也是比较全的,在生活服务,办公领域,人工智能等方面都全面覆盖,相对来说,他们的用户基数大,通过用户获取的信息也是巨大的.除了百度提供api,国内提供免费AP ...
随机推荐
- EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
EAGAIN.EWOULDBLOCK.EINTR与非阻塞 长连接 EWOULDBLOCK用于非阻塞模式,不需要重新读或者写 EINTR指操作被中断唤醒,需要重新读/写 在Linux环境下开发经常会碰到 ...
- Redis JAVA客户端 Jedis常用方法
Jedis 是 Redis 官方首选的 Java 客户端开发包 (redis的java版本的客户端实现) #MAVEN配置 <dependency> <groupId>redi ...
- SenCha Touch 与 EXTJS 安装Myeclipse 插件
http://www.cnblogs.com/jirimutu01/default.html 关于SenchaEclipsePlugin插件的安装和使用 使用过eclipse开发java程序的人都知道 ...
- 已知问题汇总 (2013-11-30) - QQ空间, EXTJS
目前发现两个已知问题暂时无法得到解决: 1. QQ空间问题. 打开页面 http://user.qzone.qq.com/822994792/311, 点击 "xxx人赞" 这个链 ...
- 后缀数组LCP + 二分 - UVa 11107 Life Forms
Life Forms Problem's Link Mean: 给你n个串,让你找出出现次数大于n/2的最长公共子串.如果有多个,按字典序排列输出. analyse: 经典题. 直接二分判断答案. 判 ...
- asp.net 判断session是否过期
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- SQL on Hadoop 的真相(2)
转自:http://blog.jobbole.com/87159/ 这是一组系列博客,目的是详尽介绍 SQL-on-Hadoop .该系列的第一篇会介绍一些存储引擎和在线事务处理(简称 OLTP )相 ...
- mysql -- 存储过程中 declare 和 set 定义变量的区别
mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...
- HttpHandler简单示例
using System.Web; namespace MyWebApp { public class MyHttpHandler : IHttpHandler { public void Proce ...
- Autofac IoC容器基本实战【2】
原文:http://www.cnblogs.com/liping13599168/archive/2011/07/16/2108209.html Autofac是一款IOC框架,比较于其他的IOC框架 ...