Перейти к содержанию
Fire Monkey от А до Я
  • 0

THTTPClient - непонятная ошибка при POST-е json на сервер


Bob32

Вопрос

Добрый день!

 

пытаюсь вот таким образом json-обьект запостить на сервер (это платежный шлюз).

получаю от сервера в респонзе ответ - 

 

{"Success":false,"ErrorCode":"5","Message":"Неверный запрос.","Details":"Неверный content-type application/x-www-form-urlencoded;charset=UTF-8. Необходимо отправлять запрос с указанием в заголовке application/json."}

"Неверный content-type application/x-www-form-urlencoded;charset=UTF-8. Необходимо отправлять запрос с указанием в заголовке application/json"

почему он неверный???? я же ниже в коде ставлю ContentType именно в application/json…..

 

Что я делаю не так?

 

Код:

 

 FHTTPClient:=THTTPClient.Create;
      FHTTPClient.ConnectionTimeout:=ConstHTTPClientConnectionTimeout;
      FHTTPClient.ResponseTimeout:=ConstHTTPClientResponseTimeout;
      FHTTPClient.UserAgent:='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';
      FHTTPClient.Accept:='text/html,application/json,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
      FHTTPClient.AcceptEncoding:='gzip, deflate';
      FHTTPClient.AcceptLanguage:='ru,en-US;q=0.8,en;q=0.6';

      FHTTPClient.ContentType:='application/json';
      FHTTPClient.AcceptCharSet := 'UTF-8';

      try

        try
          HTTPResponse:=FHTTPClient.Post('https://securepay.tinkoff.ru/v2/Init', Memo1.Lines);
          if Assigned(HTTPResponse) and (HTTPResponse.StatusCode = 200) then
            begin
            //  if Assigned(fmRating.Image14.Bitmap) then fmRating.Image14.Bitmap.Free;

              Memo2.Lines.LoadFromStream(HTTPResponse.ContentStream);

            end;
        except

        end;
      finally
        if Assigned(FHTTPClient) then FHTTPClient.Free;
      end;

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

ну вот тут как раз и вылезет то, что всегда говорят - разделяйте данные и визуализацию

все идет нормально, работа с компонентами и т.д. в целом это достаточно дешевые операции

и тут - бах - сохранение данных в файл. а это уже не так быстро

если есть возможность, нужно что-то выполнять, работать с переменными, файлами и т.д.

а потом вызывать процедуру, которая разом обновит интерфейс но сама ничего не делает

Ссылка на комментарий
  • 0

есть теория, а есть - практика! )

и есть вот такая жизненная ситуация! ) переписывать это не буду - оно работает!

но шобы совсем моднявым парнем стать - готов обернуть! от меня не убудет! )))))))))

ну серьезно - вот как в этой ситуации это лучше сделать? ) 

Ссылка на комментарий
  • 0

вот ответ на ваш вопрос

764607914_.thumb.png.3a44af1628517211de8e8ff776e434c7.png

а с визуальными элементами всегда работайте только из основного потока, иначе, в лучшем случае, будет работать через раз (в вашем TMemo текст то будет отображаться, то нет...) а под андроид вообще будет (должна) ошибка вываливаться...

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...