【发布时间】:2017-02-02 11:40:50
【问题描述】:
我在将 PHP 示例代码更改为 python 中的等效代码时遇到了严重问题。 这是一个示例 PHP 代码:
function bitmarket_api($method, $params = array())
{
$key = "klucz_jawny";
$secret = "klucz_tajny";
$params["method"] = $method;
$params["tonce"] = time();
$post = http_build_query($params, "", "&");
$sign = hash_hmac("sha512", $post, $secret);
$headers = array(
"API-Key: " . $key,
"API-Hash: " . $sign,
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, "https://www.bitmarket.pl/api2/");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$ret = curl_exec($curl);
return json_decode($ret);
}
提前感谢您的帮助。
更新:
我的代码是:
apiurl = "https://www.bitmarket.pl/api2/"
key = "mypubkey"
secret = "myceretkey"
apicommand = "info"
tonce = time.time()
params = str(apicommand) + " " + str(tonce)
postdata = (params + " " + "&")
signdata = hmac.new(postdata, secret, hashlib.sha512).hexdigest()
headerapi = { "API-Key: ": key,
"API-Hash: " : signdata}
getapi = requests.post(apiurl, data=headerapi ,params=postdata)
print getapi.text
结果:{"error":501,"errorMsg":"Invalid API key","time":1486049060}
【问题讨论】:
-
昨天我花了几个小时试图通过 python 请求和 urllib2 发送正确的请求,现在我已经删除了整个代码,因为它根本不起作用。每个请求都以错误的身份验证消息完成。如果有人能让我知道发布数据的样子。我不懂 PHP,所以我很难弄明白。
-
你试过谷歌:“用python发布数据”吗?
-
是的,我认为我只是发送了错误的数据。 apiurl = "bitmarket.pl/api2" apidata = hmac.new("info", secret_key_here, hashlib.sha512).hexdigest() getapi = requests.post(apiurl, data=apidata)
-
所以再试一次,如果你遇到困难,回来告诉我们你的尝试(用代码更新你的问题,不要在 cmets 中发布代码),我们可以提供帮助你从那里。现在,你基本上是在要求我们为你做你的工作......
-
我已经给了,我昨天只是在这个表格中吸吮,现在我从早上 7 点开始与它战斗......如果我只知道那个 php 代码的结果是什么。无论如何感谢您的回复。
标签: php python api translation url-encoding