RESTRequest возвращает ошибку при работе с налоговой платформой HMRC - PullRequest
0 голосов
/ 26 октября 2018

Я работаю над "2. Обменяйте код авторизации OAuth 2.0 на токен доступа" HMRC Tutorial /hello/user.

Мне удалось получить код авторизации, но при запуске следующего кода:

{$REGION '1. Get the the Authorisation Code'}
wv := Tfrm_OAuthWebForm.Create(self);
try
  wv.OnAfterRedirect := OAuth2Authenticator1_Hello_User_Redirect;
  wv.ShowModalWithURL(LURL);
finally
  wv.Release;
end;
{$ENDREGION '1. Get the the Authorisation Code'}

1.HM Доход и таможня. Полномочия на взаимодействие с HMRC от вашего имени. Нажмите Продолжить.
2.HM Доход и Таможня. Sing In. Идентификатор пользователя и пароль. Вход.
3. Нажмите «Предоставить доступ».
4.Введен код авторизации в код на OAuth2Authenticator1_Hello_User_Redirect Event.
5. Отобразите мою страницу перенаправления.
6.Закройте Tfrm_OAuthWebForm.

Выполнен следующий код:

RESTClient1.Authenticator := OAuth2Authenticator1_Hello_User;
RESTClient1.BaseURL := 'https://test-api.service.hmrc.gov.uk/oauth/token';
RESTRequest1.Method := TRESTRequestMethod.rmGET;
RESTRequest1.Params.AddItem('grant_type', 'authorization_code', TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('client_id', eHello_User_Client_ID.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('client_secret', eHello_User_Client_Secret.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('redirect_uri', eHello_User_Redirect.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Params.AddItem('authorization_code', eHello_User_Authorization_Code.Text, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest1.Execute;

Исключение возникает при вызове RESTRequest1.Execute.

procedure TfrmMain.RESTRequest1HTTPProtocolError(Sender: TCustomRESTRequest);
begin
// show error
  Add_To_Memo(Sender.Response.StatusText, False{Clear_Memo});
  Add_To_Memo(Sender.Response.Content, False{Clear_Memo});
  // Sender.Response.Content, = <!--[if lt IE 9]><html class="no-js lte-ie8"
end;

Sender.Response.StatusText -

Не найдено

Sender.Response.Content - это

Налоговая платформа HMRC - страница не найдена - 404 HMRC Page not Found 404

HMRC говорят

в диапазоне от 400 до 499, если это не удалось из-за ошибки клиента вашим приложением

Я проверил и перепроверил приложение, но вижу, что нарушает код, при передаче кода авторизации для получения токенов доступа и обновления.

Используя тот же OAuth2Authenticator I:
1. Правой кнопкой мыши щелкните OAuth2Authenticator.
2. Выберите Настроить.
3. Нажмите Авторизация.
4.Введите идентификатор пользователя и пароль.
5. Нажмите Предоставить доступ.
6. Мне выданы токены доступа и обновления без ошибок.

Есть идеи, что мне не хватает в моем коде?

Надеюсь, что это имеет смысл.
ТИА

...