У меня проблема с вызовом MTGox HTTP api v2. Я написал функцию sendrequest, чтобы обрабатывать все мои запросы. Он отлично работает для ДЕНЕГ/ИНФО или ДЕНЬГИ/ЗАКАЗОВ, но я получаю 500 внутренних ошибок сервера, когда я пытаюсь использовать методы ДЕНЬГИ/ЗАКАЗ/ЦЕНЫ или ДЕНЬГИ/ЗАКАЗАТЬ/ДОБАВИТЬ.Внутренний сервер с MTGOX api
Похоже, что когда post_data содержит что-либо помимо nonce, это происходит неправильно. Что мне нужно сделать, чтобы решить эту проблему?
SendRequest функция:
private string sendRequest(string action, NameValueCollection query)
{
NameValueCollection nvc = new NameValueCollection();
nvc.Add("nonce", DateTime.Now.Ticks.ToString());
nvc.Add(query);
String post_data = "";
for (int i = 0; i < nvc.Count; i++)
{
post_data += "&";
post_data += nvc.Keys[i];
post_data += "=";
post_data += nvc[i];
}
post_data = post_data.Substring(1);
action = "BTCEUR/money/" + action;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sBasePath + action);
action += "\0"+post_data;
req.Method = "POST";
HMACSHA512 hmac = new HMACSHA512(GetBytes(action));
hmac.Key = Convert.FromBase64String(secret);
String sign = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(action)), Base64FormattingOptions.None);
req.Headers.Add("Rest-Key", apikey);
req.Headers.Add("Rest-Sign", sign);
req.UserAgent = "Mozilla/4.0 (compatible; MtGoxTradeCLI)";
req.ContentType = "application/x-www-form-urlencoded";
StreamWriter reqStream = new StreamWriter(req.GetRequestStream());
reqStream.Write(post_data);
reqStream.Close();
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader respStream = new StreamReader(resp.GetResponseStream());
String response = respStream.ReadToEnd();
respStream.Close();
return response;
}
Спасибо за ваш ответ. Но, к сожалению, это мне не помогает. Я попытался изменить порядок параметров, так что последнее приходит не в последнюю очередь, попробовал как BTCEUR/money/..., так и деньги/..., создал новый ключ API, но все же получил ошибку внутреннего внутреннего сервера. Мои другие вызовы API по-прежнему работают отдельно от упомянутых вами моментов. –