andresenlared
26-08-2022, 21:13:32
Saludos.
Estoy conociendo los componentes REST de delphi, y quiero implementar un desarrollo para enviar unos datos a un API REST.
Les comento que quiero hacer inicialmente.
Tengo que obtener un token de un API Rest. En postman cargo los parametros del header y el body, y funciona sin problema,
En delphi, entre a la herramienta RestDebugger y agrego los mismo parametros, indicando cuales para el header y cuales para el body, y no corrio.
En código fuente tengo lo siguiente.
RESTClient := TRESTClient.Create(nil);
RESTRequest := TRESTRequest.Create(nil);
RESTResponse := TRESTResponse.Create(nil);
RESTRequest.Client := RESTClient;
RESTRequest.Response := RESTResponse;
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Params.AddItem('Authorization', 'Bearer ZWQxUExRa2lsOXVRMVVWT1MzbElEb2ZJVm1RYTpHd3AxYjFMZEE0SzVxbGZ4bHNWRVpkRDQ0ZWNh', pkHTTPHEADER, [poDoNotEncode]);
RESTRequest.Params.AddItem('Content-Type', 'application-x-www-form-urlencoded', pkHTTPHEADER, [poDoNotEncode]);
RESTRequest.Params.AddItem('grant_type', 'password', pkREQUESTBODY, [poDoNotEncode]);
RESTRequest.Params.AddItem('username', 'userprestador', pkREQUESTBODY, [poDoNotEncode]);
RESTRequest.Params.AddItem('password', 'gocUZVNAVN5kToPjPM2f', pkREQUESTBODY, [poDoNotEncode]);
RESTClient.BaseURL := 'https://papi.colsanitas.com/token';
RESTRequest.Execute;
memo1.Lines.Text:= RestResponse.Content;
y se genera el error
{
"error_description": "Missing grant_type parameter value",
"error": "invalid_request"
}
No se si con otros componentes como en Indy se pueda hacer este tipo de parametrización.
Les agradezco su ayuda, ya que tengo muy encima este desarrollo.
Estoy conociendo los componentes REST de delphi, y quiero implementar un desarrollo para enviar unos datos a un API REST.
Les comento que quiero hacer inicialmente.
Tengo que obtener un token de un API Rest. En postman cargo los parametros del header y el body, y funciona sin problema,
En delphi, entre a la herramienta RestDebugger y agrego los mismo parametros, indicando cuales para el header y cuales para el body, y no corrio.
En código fuente tengo lo siguiente.
RESTClient := TRESTClient.Create(nil);
RESTRequest := TRESTRequest.Create(nil);
RESTResponse := TRESTResponse.Create(nil);
RESTRequest.Client := RESTClient;
RESTRequest.Response := RESTResponse;
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Params.AddItem('Authorization', 'Bearer ZWQxUExRa2lsOXVRMVVWT1MzbElEb2ZJVm1RYTpHd3AxYjFMZEE0SzVxbGZ4bHNWRVpkRDQ0ZWNh', pkHTTPHEADER, [poDoNotEncode]);
RESTRequest.Params.AddItem('Content-Type', 'application-x-www-form-urlencoded', pkHTTPHEADER, [poDoNotEncode]);
RESTRequest.Params.AddItem('grant_type', 'password', pkREQUESTBODY, [poDoNotEncode]);
RESTRequest.Params.AddItem('username', 'userprestador', pkREQUESTBODY, [poDoNotEncode]);
RESTRequest.Params.AddItem('password', 'gocUZVNAVN5kToPjPM2f', pkREQUESTBODY, [poDoNotEncode]);
RESTClient.BaseURL := 'https://papi.colsanitas.com/token';
RESTRequest.Execute;
memo1.Lines.Text:= RestResponse.Content;
y se genera el error
{
"error_description": "Missing grant_type parameter value",
"error": "invalid_request"
}
No se si con otros componentes como en Indy se pueda hacer este tipo de parametrización.
Les agradezco su ayuda, ya que tengo muy encima este desarrollo.