मैं पाइथन सीख रहा हूं और एक अभ्यास के रूप में मैंने बिटकॉइन बाजार पर लेनदेन करने के लिए एक प्रोग्राम बनाने की कोशिश की: https://bitcurex.com। यहां एक एपीआई संदर्भ है: https://bitcurex.com/reading-room/API। वहाँ एक PHP ग्राहक उदाहरण है, इसलिए मैं अजगर में अनुवाद करने की कोशिश की, तो मैं मिल गया है:PHP को पायथन (रेस्ट-एपीआई कनेक्शन) में अनुवाद करना
import math
import time
import simplejson
import urllib
import urllib2
import hmac,hashlib
def microtime():
return '%f %d' % math.modf(time.time())
def query(path, key, secret, data={}):
mt = microtime().split()
nonce = mt[1] + mt[0][2:]
data['nonce'] = nonce
post_data = urllib.urlencode(data)
sign = hmac.new(secret.decode('base64'), post_data, hashlib.sha512).digest()
headers = {'Rest-Key' : key,
'Rest-Sign': sign.encode('base64').strip(),
'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
'Content-type': 'application/x-www-form-urlencoded'}
print headers
url = 'https://bitcurex.com/api/0/' + path
req = urllib2.Request(url, post_data, headers)
response = urllib2.urlopen(req)
return simplejson.loads(response.read())
print query('getFunds', '29a28e8fe234537056a8b256c0df50413f50da9c49ca61991ea8b8f108a88e09', 'y2NDxKGa/xvhtXrDP+3oscbBUFSac9+T8jzu2nRmt0vBdHbbl8NRqdmxKFr2IwwY5LAskTQZGyy2XONaNN6Jrg==')
ये API कुंजियां काम कर रहे हैं - आप केवल उन लोगों के साथ getFunds क्वेरी कर सकते हैं।
यह लौटने में त्रुटि रखता है "मुझे लॉग इन करना चाहिए"। मैं फ़िडलर प्रॉक्सी डीबगर के माध्यम से उस अनुरोध पर देखने के लिए करने की कोशिश की, और यहाँ आप उस प्रयास का हेडर है:
POST /api/0/getFunds HTTP/1.1
Accept-Encoding: identity
Rest-Sign: Dd1WBn2T5SYTbqMMohOxr46IaLDrkelgH7AgkrrB0mT0PxKfv15vSJ3b6xNdc5PO2Yz9cDpu0u/H
WIc7bH56sQ==:
Content-Length: 22
Rest-Key: 29a28e8fe234537056a8b256c0df50413f50da9c49ca61991ea8b8f108a88e09
Connection: close
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)
Host: bitcurex.com
Content-Type: application/x-www-form-urlencoded
फ़िडलर मुझे एक त्रुटि दिखा रहा है:
Incorrectly formed request headers.
Missing colon in header #3, WIc7bH56sQ==
किसी भी विचार? ऐसा लगता है कि मेरे रेस्ट-साइन बहुत लंबे हैं या ऐसा कुछ है। मुझे लगता है कि मेरा कोड बिल्कुल PHP उदाहरण के समान होना चाहिए। मैं क्या गलत कर रहा हूँ?
आईटी काम किया! धन्यवाद! – mpestkow
मेरे लिए भी काम किया, लेकिन मुझे लगता है कि मुझे 403 प्रतिक्रिया मिलती है। मैंने अपना खुद का कुंजी/गुप्त मूल्य इस्तेमाल किया लेकिन फिर भी अगर लॉगिन करने में विफल रहता है –