|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qui Ago 11, 2022 4:38 pm Assunto: Requisição REST com método PATCH [Resolvido] |
|
|
Boa tarde,
Estou tentando implementar a baixa de boletos via a API SICOOB e na documentação informa que o método a ser usado é do tipo PATCH.
https://developers.sicoob.com.br/#!/apis
Verificando o componente RESTRequest estão disponíveis somentes os métodos DELETE, GET, POST E PUT.
Tentei fazer a requisição como POST ou PUT mas sem sucesso.
Alguém sabe como fazer a requisição usando este método PATCH? _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin
Editado pela última vez por natanbh1 em Qua Ago 17, 2022 5:56 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Ago 17, 2022 5:55 pm Assunto: |
|
|
Com base no link abaixo, consegui resolver usando o método TIdHTTP.DoRequest():
https://stackoverflow.com/questions/24556265/how-do-i-make-a-http-patch-request-in-delphi
Exemplo:
Código: | type
TIdHTTPAccess = class(TIdHTTP); |
Código: |
var
URLs: string;
lHTTP: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
AccessToken: string;
JsonToSend: TStringStream;
JsonRetorno: TMemoryStream;
begin
URLs := 'https://sandbox.sicoob.com.br/cobranca-bancaria/v1/boletos/baixa';
with lHTTP do
begin
lHTTP := TIdHTTP.Create(nil);
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
try
IOHandler := IdSSLIOHandlerSocketOpenSSL;
Request.UserAgent := 'insomnia/2022.3.0';
HandleRedirects := True;
Request.CustomHeaders.Clear;
Request.CustomHeaders.AddValue('Content-type', 'application/json');
Request.CustomHeaders.AddValue('client_id', clientID);
Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + AccessToken);
Request.CharSet := 'utf-8';
Request.Host := URLs;
JsonToSend := TStringStream.Create(memBaixa.Text, TEncoding.UTF8);
JsonRetorno := TMemoryStream.Create;
try
TIdHTTPAccess(lHTTP).DoRequest('PATCH', URLs, JsonToSend, JsonRetorno, []);
JsonRetorno.Position := 0;
Json := ReadStringAsCharset(JsonRetorno, TIdHTTPAccess(lHTTP).ResponseCharset{$IFDEF STRING_IS_ANSI},
ADestEncoding{$ENDIF});
finally
JsonRetorno.Free;
JsonToSend.Free;
end;
if ResponseCode = 207 then
Application.MessageBox('Baixa efetuada com sucesso.', 'Informação', MB_OK + MB_ICONINFORMATION)
else
Application.MessageBox('Falha ao baixar boleto', 'Aviso', MB_OK + MB_ICONWARNING);
except
on E: Exception do
Application.MessageBox(PChar(Concat('Falha ao baixar boleto.', sLineBreak, sLineBreak,
ResponseCode.ToString(), ' - ', E.Message)), 'Aviso', MB_OK + MB_ICONWARNING)
end;
finally
lHTTP.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
end;
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|