Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2019, 12:47   #1
Neznayka2016
Пользователь
 
Регистрация: 18.03.2016
Сообщений: 29
По умолчанию Перестал работать POST запрос

Код успешно работал
Код:
...
const
PublicKey:= ****;
SecretKey:= ****;
UrlAPI:= 'http://api.exmo.me/v1/';
...
var
LastNonce:= DateTimeToUnix(Now);


function GetNonce: string;
begin
  LastNonce:= LastNonce + 1;
  Result:= IntToStr(LastNonce);
end;

function Signature(AData: string): string;
begin
  Result := SHA512DigestToHexA(CalcHMAC_SHA512(SecretKey, AData));
end;

function SendQuery(AData, AMethod: string): TDispatchResult;
var
  PostData: TStringStream;
begin
    try
      AData:= AData + 'nonce=' + GetNonce;
      FidHTTP.Request.CustomHeaders.Clear;
      FidHTTP.Request.CustomHeaders.Add ('Content-Type: application/x-www-form-Urlencoded');
      FidHTTP.Request.CustomHeaders.Add('Key: ' + PublicKey);
      FidHTTP.Request.CustomHeaders.Add('Sign: ' + Signature(AData));
      PostData:= TStringStream.Create(AData);
      StartTime:= GetCurrentTime;
      Result.Data:= FidHTTP.Post(UrlAPI + AMethod, PostData);
    finally
      PostData.Free;
      FidHTTP.Disconnect;
    end;
end;

function GetUserInfo: TApiResult;
begin
    FDispatch:= SendQuery('', 'user_info');
    Result.Data:= FDispatch.Data;
end;
после тех работ на сервисе, стал выдавать такой ответ
'{"result":false,"error":"40007: Incorrect format parameter ''nonce''"}'#$A
Если ваша помощь стоит адекватных денег, готов рассмотреть предложение
Neznayka2016 вне форума Ответить с цитированием
Старый 27.06.2019, 13:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

чисто гипотетически, попробуйте так
Код:
function SendQuery(AData, AMethod: string): TDispatchResult;
var
  PostData: TStringStream;
begin
    try
      FidHTTP.Request.CustomHeaders.Clear;
      FidHTTP.Request.CustomHeaders.Add ('Content-Type: application/x-www-form-Urlencoded');
      FidHTTP.Request.CustomHeaders.Add('Key: ' + PublicKey);
      FidHTTP.Request.CustomHeaders.Add('Sign: ' + Signature(AData));
      FidHTTP.Request.CustomHeaders.Add('nonce: ' + GetNonce);
      PostData:= TStringStream.Create(AData);
      StartTime:= GetCurrentTime;
      Result.Data:= FidHTTP.Post(UrlAPI + AMethod, PostData);
    finally
      PostData.Free;
      FidHTTP.Disconnect;
    end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2019, 13:34   #3
Neznayka2016
Пользователь
 
Регистрация: 18.03.2016
Сообщений: 29
По умолчанию

Пробовал так, не работает
Neznayka2016 вне форума Ответить с цитированием
Старый 27.06.2019, 13:42   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а ошибка какая? что возвращает?

ну, в принципе, в исходном коде у Вас всё нормально было.
Попробуйте обратиться в тех.поддержку https://exmo.com/ru/support
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2019, 13:45   #5
Neznayka2016
Пользователь
 
Регистрация: 18.03.2016
Сообщений: 29
По умолчанию

Вы наверно не увидели, ответ приходит такой '{"result":false,"error":"40007: Incorrect format parameter ''nonce''"}'#$A.
В тп обращался, они толком ничего ответить не могут
Neznayka2016 вне форума Ответить с цитированием
Старый 27.06.2019, 13:47   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Neznayka2016 Посмотреть сообщение
Пробовал так, не работает
после изменения кода ошибка осталась та же самая?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2019, 13:48   #7
Neznayka2016
Пользователь
 
Регистрация: 18.03.2016
Сообщений: 29
По умолчанию

Да. Вы не желает более детально разобраться с вопросом? Просто человек который мне помог в прошлый раз, не выходит на связь.
Neznayka2016 вне форума Ответить с цитированием
Старый 27.06.2019, 14:05   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Neznayka2016 Посмотреть сообщение
UrlAPI:= 'http://api.exmo.me/v1/';
а почему http ?
разве там не https ?

Цитата:
Для доступа к данному API требуется авторизация и необходимо использовать POST метод.

URL — необходимо использовать следующий адрес https://api.exmo.com/v1/{api_name} где api_name - это наименование API метода

Последний раз редактировалось Serge_Bliznykov; 27.06.2019 в 14:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2019, 14:07   #9
Neznayka2016
Пользователь
 
Регистрация: 18.03.2016
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а почему http ?
разве там не https ?
раньше работало так, я не силен в запросах. по этому и обращаюсь за помощью.
Neznayka2016 вне форума Ответить с цитированием
Старый 27.06.2019, 14:09   #10
Neznayka2016
Пользователь
 
Регистрация: 18.03.2016
Сообщений: 29
По умолчанию

И еще, запросы не требующие авторизации, работают нормально
Neznayka2016 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
xpath-запрос перестал работать fanat_96 C# (си шарп) 5 21.09.2016 17:07
Перестал работать код Оксана33 Microsoft Office Excel 6 07.10.2015 21:10
POST перестал работать, начал обрабатываться как GET Jleksern PHP 4 11.06.2014 09:46
Метод post перестал работать Syltan PHP 3 05.12.2010 09:39
Перестал работать код Mikuro Microsoft Office Excel 6 12.11.2010 15:24