Ir para conteúdo
  • Cadastre-se

dev botao

Envio de arquivo JSon


  • Este tópico foi criado há 1658 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa Noite Pessoal!

Em minhas últimas postagens eu estava com dificuldades para integrar com uma api e enviar arquivos JSon.

Graças à ajuda de nosso amigo "DATILAS" (Douglas Átilas), consegui implementar com sucesso a ferramenta de integração.

Porém, praticamente de 98 a 99% das ordens enviadas (arquivos JSon) tem seu envio sem nenhum problema, sendo recebido integralmente pelo web service da api.

O restante que minha ferramenta não consegue enviar é que eu não estou conseguindo resolver a questão, porque se eu copio uma dessas ordens que apresentou problema e tento enviar pelo "boomerang" ou pela "Restlet Client" do Google", a mesma é enviado normalmente.

Alguém poderia me auxiliar nessa questão, por gentileza?

 

Segue abaixo uma das ordens que apresentam problema em minha ferramenta:

[{"Driver":{"PhoneCountry":"+55","PhoneNumber":"19 994559352"},"Customer":{"DocumentType":"CNPJ","DocumentNumber":"11229082000167"},"OrderType":1,"OrderID":"229551","OrderNumber":"229551","Sequence":"3","OrderDescription":"NF-e","OrderDescriptionDocuments":"NF-e","SourceAddress":{"Address":"RUA KINITI MORI, 110","Address2":"COMENDADOR MARIO DEDINI","ZipCode":"13413069","City":"PIRACICABA","State":"SP","Country":"BRASIL","Name":"PIRACICABA CARNES E DERIVADOS EIRELI","Responsibility":"REGINALDO","PhoneCountry":"+55","PhoneNumber":"(19)3917-0260"},"DestinationAddress":{"Address":"AV. RIO DAS PEDRAS, 192","Address2":"PIRACICAMIRIM","ZipCode":"13420520","City":"PIRACICABA","State":"SP","Country":"BRASIL","Name":"BAR PANTERA","Responsibility":"DIJALMA","PhoneCountry":"+55","PhoneNumber":"19 3426 2942"},"Documents":[{"DocumentID":"229551","DocumentNumber":"229551","Volumes":[{"VolumeID":"1","Count":1,"BarCode":"0","Read":1}]}],"Observation":"RAZAO SOCIAL: DJALMA PERES FARIAS ME ","DepartureDate":"2019-10-08T00:00:00"}]

 

Para enviar essa ordem, ela é gerada em um TMemo e depois enviada pelo código abaixo:

Link do Manual da API: https://api.tudoentregue.com.br/Documentacao/

 

Segue rotina para envio...

 

function TFExportaEntrega.EnviarJSon(caminho: String; ArqJSon: TMemo): Boolean;
Var
  code: Integer;
  sResponse, url: String;
  JsontoSend, AResponseContent: TStringStream;
  iStatusCode: Integer;
  http: TIdHTTP;
  Handler: TIdSSLIOHandlerSocketOpenSSL;
Begin
  JsontoSend := TStringStream.Create(ArqJSon.Text);
  AResponseContent := TStringStream.Create('');
  http := TIdHTTP.Create(Nil);
  Handler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  Try
    http.Request.CharSet := 'utf-8';
    http.Request.ContentType := 'application/json';
    http.Request.CustomHeaders.AddValue('AppKey', '58fb05c3-4e8b-4929-b7df-95bd261035c9');
    http.Request.CustomHeaders.AddValue('RequesterKey', '629eda6f-9df5-40e7-a94e-4c54cec83a15');
    http.IOHandler := Handler;

    http.Response.ContentType := 'application/json';
    http.Response.CharSet := 'utf-8';
    url := 'http://api.tudoentregue.com.br/v1' + caminho;
    Try
      http.Post(url, JsontoSend, AResponseContent);
    Except
      On E:Exception Do
      Begin
        Memo_Resp.Lines.Add('Response Content : ');
        AResponseContent.Position := 0;
        Memo_Resp.Lines.LoadFromStream(AResponseContent);
        Memo_Resp.Lines.Add('Error on Response Code: ' + InttoStr(http.ResponseCode));
        Memo_Resp.Lines.Add('Error on Response Text: ' + http.ResponseText);
        Memo_Resp.Lines.Add('Error on Request: ' + sLineBreak + E.Message);
        EnviarJSon := false;
        exit;
      End;
    End;
    EnviarJSon := True;
  Finally
    JsontoSend.Free;
    AResponseContent.Free;
    http.Free;
    Handler.Free;
  End;
end;

 

 

Se alguém puder me ajudar ficarei muito grato pois não sei mais o que fazer.

 

Att.

 

Daniel

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1658 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...