代码
#!/usr/bin/env python # -*- coding:utf-8 -*- import hashlib import requests import time import urllib import hmac import urllib.parse from collections import OrderedDict # coin coin = 'btc' public_key = '' private_key = '' # send requests def post(method, params): Od = OrderedDict() Od['coin'] = coin Od['key'] = public_key Od['nonce'] = int(time.time()) Od['version'] = 2 for i in params: Od[i] = params[i] Od['signature'] = signature(Od) print (Od) response = requests.post('https://www.jubi.com/api/v1/' + method, data=Od) if response.status_code == 200: print(response.text) else: print(response.status_code) # create signature def signature(params): payload = urllib.parse.urlencode(params) pl = payload.encode() pk = private_key.encode() md5prikey = hashlib.md5(pk).hexdigest() md5prikey = md5prikey.encode() sign = urllib.parse.quote(hmac.new(md5prikey, pl, digestmod=hashlib.sha256).hexdigest()) return sign # get balance def balance(): post('balance',{}) balance()
另外,Python3的Post方法
import urllib.request import urllib.parse data = urllib.parse.urlencode({'nonce': 150320072902, 'key': 'abcdefg', 'signature': 'abcdefgabcdefg'}) data = data.encode('utf-8') request = urllib.request.Request("https://www.jubi.com/api/v1/balance") f = urllib.request.urlopen(request, data) print(f.read().decode('utf-8')) print(f.read())
GET方法
>>> import urllib.request >>> import urllib.parse >>> params = urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) >>> url = "http://www.musi-cal.com/cgi-bin/query?%s" % params >>> with urllib.request.urlopen(url) as f: ... print(f.read().decode('utf-8'))