Передо мной стоит большая задача, чтобы мое приложение Delphi посмотрело на Api от Woocommerce.Я получил ПОЛУЧЕНИЕ, я получил ПОСТ, но теперь я застрял в ПОЛОЖЕНИИ в Остальном.Я думал, что с той же функцией, что и POST, я могу выполнить PUT, но я получаю сообщение, что мне не разрешено изменять.Что не имеет смысла, я могу создать, но не изменить?
Понизил Я перечислю способ, которым я делаю POST, и второй код, где я сделал некоторые изменения, пытаясь сделать PUT.
Помня, что я уже пытался сделать с кодом POST, просто изменив метод на rmPUT, и код PUT, я получаю сообщение о том, что подпись недействительна.
Если кто-нибудь знает, как мне помочьпожалуйста, если нет, моя последняя альтернатива - найти способ изменить тип аутентификации API Woocommerce, который я не знаю, если это возможно ...
//My Procedure for POST
procedure TForm1.Criar;
var
s,r: String;
begin
RESTRequest.ResetToDefaults;
RESTClient.ResetToDefaults;
RESTResponse.ResetToDefaults;
RESTResponseDSAdapter.ResetToDefaults;
WooAuth.ResetToDefaults;
WooAuth.ConsumerKey := edtConsumerKey.Text;
WooAuth.ConsumerSecret := edtConsumerSecret.Text;
RESTClient.BaseURL := edtBaseURL.Text;
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Resource := '/products/categories';
RESTRequest.AddParameter('name', edtNomeGrupo.Text);
RESTRequest.AddParameter('description', edtDescGrupo.Text);
RESTRequest.AddParameter('oauth_consumer_key', edtConsumerKey.Text);
RESTRequest.AddParameter('oauth_signature_method', WooAuth.SignatureMethod);
RESTRequest.AddParameter('oauth_nonce', WooAuth.nonce);
RESTRequest.AddParameter('oauth_timestamp', WooAuth.timeStamp.DeQuotedString);
RESTRequest.AddParameter('oauth_version', WooAuth.Version);
s := WooAuth.SigningClass.BuildSignature(RESTRequest, WooAuth);
RESTRequest.AddParameter('oauth_signature', s);
end;
//My Procedure for PUT
procedure TForm1.Atualizar;
var
s,r: String;
begin
RESTRequest.ResetToDefaults;
RESTClient.ResetToDefaults;
RESTResponse.ResetToDefaults;
RESTResponseDSAdapter.ResetToDefaults;
WooAuth.ResetToDefaults;
WooAuth.ConsumerKey := edtConsumerKey.Text;
WooAuth.ConsumerSecret := edtConsumerSecret.Text;
RESTClient.BaseURL := edtBaseURL.Text;
RESTRequest.Method := TRESTRequestMethod.rmPUT;
RESTRequest.Resource := '/products/categories';
RESTRequest.ResourceSuffix := '16?name={name}&description={description}&oauth_consumer_key={oauth_consumer_key}&oauth_signature_method={oauth_signature_method}&oauth_nonce={oauth_nonce}&oauth_timestamp={oauth_timestamp}&oauth_version={oauth_version}&oauth_signature={oauth_signature}';
RESTRequest.AcceptEncoding := 'identity';
RESTClient.AcceptEncoding := 'identity';
RESTRequest.AddParameter('name', edtNomeGrupo.Text, TRESTRequestParameterKind.pkURLSEGMENT);
RESTRequest.AddParameter('description', edtDescGrupo.Text, TRESTRequestParameterKind.pkURLSEGMENT);
RESTRequest.AddParameter('oauth_consumer_key', edtConsumerKey.Text, TRESTRequestParameterKind.pkURLSEGMENT);
RESTRequest.AddParameter('oauth_signature_method', WooAuth.SignatureMethod, TRESTRequestParameterKind.pkURLSEGMENT);
RESTRequest.AddParameter('oauth_nonce', WooAuth.nonce, TRESTRequestParameterKind.pkURLSEGMENT);
RESTRequest.AddParameter('oauth_timestamp', WooAuth.timeStamp.DeQuotedString, TRESTRequestParameterKind.pkURLSEGMENT);
RESTRequest.AddParameter('oauth_version', WooAuth.Version, TRESTRequestParameterKind.pkURLSEGMENT);
s := WooAuth.SigningClass.BuildSignature(RESTRequest, WooAuth);
RESTRequest.AddParameter('oauth_signature', s, TRESTRequestParameterKind.pkURLSEGMENT);
end;