Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.10.2019, 12:55
kalan2783 kalan2783 вне форума
Прохожий
 
Регистрация: 07.10.2019
Сообщения: 1
Версия Delphi: Delphi 10.1
Репутация: 10
По умолчанию При создании тестового ордера на binance выдает 400 bad request

Доброго времени суток. При создании тестового ордера на binance используя delphi возврощается ошибка 400 bad request.
Где грабли? Подскажите пожалуйста.

Код:
procedure TForm1.Order();
var
  url, sign, queryString, nonce: string;
  ST: SystemTime;
  DT: TDateTime;
  uTime: int64;
  sHour, sMin, sSec, sMili: Word;

  stream, s_url: string;
  Post: TStringList;
begin
  api_key := 'OPEN_KEY';
  api_secret := 'SECRET_KEY';

  GetSystemTime(ST);
  DT := EncodeDate(ST.wYear, ST.wMonth, ST.wDay) +
        EncodeTime(ST.wHour, ST.wMinute, ST.wSecond, ST.wMilliseconds);
  uTime := DateUtils.MilliSecondsBetween(DT, UnixDateDelta);
  nonce:=inttostr(uTime);

  url :='https://api.binance.com/api/v3/order/test';
  queryString := 'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=0.12&price=0.008729&recvWindow=5000&timestamp='+nonce;
  sign := THashSHA2.GetHMAC(queryString, api_secret, SHA256);

  IdHTTP10 := TidHTTP.Create(nil);
  IdHTTP10.HandleRedirects := True;
  IdHTTP10.Request.CustomHeaders.Add('X-MBX-APIKEY:'+api_key);

  Post:=TStringList.Create;
  Post.Add('quantity=0.12&');
  Post.Add('price=0.008729&');
  Post.Add('recvWindow=5000&');
  Post.Add('timestamp='+nonce+'&');
  Post.Add('signature='+sign);

  s_url := url + '?symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC';
  try
    stream:=IdHTTP10.POST(s_url, Post);
    Memo3.Lines.Add(stream);
  except
    on E: Exception do
      Memo1.Lines.Add(TimeToStr(time)+' <---> [Order] error: '+E.Message);
  end;
  IdHTTP10.Free;
  Post.Free;
end;
Ответить с цитированием
  #2  
Старый 07.11.2019, 17:39
KINnis KINnis вне форума
Прохожий
 
Регистрация: 25.03.2019
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от kalan2783
Доброго времени суток. При создании тестового ордера на binance используя delphi возврощается ошибка 400 bad request.
Где грабли? Подскажите пожалуйста.

Код:
procedure TForm1.Order();
var
  url, sign, queryString, nonce: string;
  ST: SystemTime;
  DT: TDateTime;
  uTime: int64;
  sHour, sMin, sSec, sMili: Word;

  stream, s_url: string;
  Post: TStringList;
begin
  api_key := 'OPEN_KEY';
  api_secret := 'SECRET_KEY';

  GetSystemTime(ST);
  DT := EncodeDate(ST.wYear, ST.wMonth, ST.wDay) +
        EncodeTime(ST.wHour, ST.wMinute, ST.wSecond, ST.wMilliseconds);
  uTime := DateUtils.MilliSecondsBetween(DT, UnixDateDelta);
  nonce:=inttostr(uTime);

  url :='https://api.binance.com/api/v3/order/test';
  queryString := 'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=0.12&price=0.008729&recvWindow=5000&timestamp='+nonce;
  sign := THashSHA2.GetHMAC(queryString, api_secret, SHA256);

  IdHTTP10 := TidHTTP.Create(nil);
  IdHTTP10.HandleRedirects := True;
  IdHTTP10.Request.CustomHeaders.Add('X-MBX-APIKEY:'+api_key);

  Post:=TStringList.Create;
  Post.Add('quantity=0.12&');
  Post.Add('price=0.008729&');
  Post.Add('recvWindow=5000&');
  Post.Add('timestamp='+nonce+'&');
  Post.Add('signature='+sign);

  s_url := url + '?symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC';
  try
    stream:=IdHTTP10.POST(s_url, Post);
    Memo3.Lines.Add(stream);
  except
    on E: Exception do
      Memo1.Lines.Add(TimeToStr(time)+' <---> [Order] error: '+E.Message);
  end;
  IdHTTP10.Free;
  Post.Free;
end;

Сделай резервное копирование, а затем определи ошибка на стороне клиента или на стороне сервера? Если дело в клиенте, нужно куки почистить, загрузить файл размера поменьше, войти и выйти. Можно также попробовать удалить новые расширения, модули и т.д. А если проблема на стороне сервера, можно произвести перекомпиляцию и перезагрузку.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter