Fórum Como enviar para registro para um Webservice? #472096

06/03/2014

0

Prezados,

Como é que eu devo proceder para enviar vários registros para um Webservice? Exemplo: Quero dar um "post" para um webservice contendo um cadastro de produtos com mais de 2500 registros. Tentei fazer isso utilizando um loop, "postando" registro por registro da tabela, mas além de fica SUPER lento, o processo não chega até o final.

Grato e aguardo qualquer orientação.
M. C.

M. C.

Responder

Posts

10/03/2014

M. C.

Up!
Responder

Gostei + 0

18/05/2014

M. C.

Ainda continuo com essa dúvida. Será que ninguém poderia me ajudar?
Responder

Gostei + 0

20/05/2014

Lourival Queiroz

Amigo, vc poderia usar JSON para isso. é mais pratico e rápido, pois como é texto, só tem vantagens .
Responder

Gostei + 0

20/05/2014

M. C.

Amigo, vc poderia usar JSON para isso. é mais pratico e rápido, pois como é texto, só tem vantagens .


Pois é, eu adoro JSON e sempre trabalho com ele. O problema é que quero fazer um "POST" com vários registros e não sei com fazer. GETs e POSTs com pouco registros sei fazer utilizando uma única requisição.

Me dê um exemplo de como preceder. Link ou coisa do tipo será bem vindo.

Grato e aguardo o seu retorno.

Responder

Gostei + 0

13/08/2014

M. C.

Up...!
Responder

Gostei + 0

14/08/2014

Valquiria Silva

olá, bom dia.

Se entendi sua dúvida, vc teria que fazer "array" com as essas informações e enviar.

tipo:
var
   Registro: TStrings;
   host: string;
begin
   IdHTTP1.Request.Clear;
   IDHttp1.Request.CustomHeaders.Clear;
   IdHTTP1.Request.ContentType := 'application/json';
   IdHTTP1.Request.Accept := 'application/json';

   Registro := TStringList.Create;
   try
       Registro.Add('{"produtos": {"id": "1", "descricao": "Teste 1" ,"ativo" : "false" }}');
       Registro.Add('{"produtos": {"id": "2", "descricao": "Teste 2" ,"ativo" : "true" }}');
       Registro.Add('{"produtos": {"id": "3", "descricao": "Teste 3" ,"ativo" : "false" }}');

       IdHTTP1.Post(host, Registro);
   finally
       FreeAndNil(Registro);
   end;


Você pode encontrar mais informações sobre json aqui

espero que ajude.
Responder

Gostei + 0

15/08/2014

M. C.

olá, bom dia.

Se entendi sua dúvida, vc teria que fazer "array" com as essas informações e enviar.

tipo:
var
   Registro: TStrings;
   host: string;
begin
   IdHTTP1.Request.Clear;
   IDHttp1.Request.CustomHeaders.Clear;
   IdHTTP1.Request.ContentType := 'application/json';
   IdHTTP1.Request.Accept := 'application/json';

   Registro := TStringList.Create;
   try
       Registro.Add('{"produtos": {"id": "1", "descricao": "Teste 1" ,"ativo" : "false" }}');
       Registro.Add('{"produtos": {"id": "2", "descricao": "Teste 2" ,"ativo" : "true" }}');
       Registro.Add('{"produtos": {"id": "3", "descricao": "Teste 3" ,"ativo" : "false" }}');

       IdHTTP1.Post(host, Registro);
   finally
       FreeAndNil(Registro);
   end;


Você pode encontrar mais informações sobre json aqui

espero que ajude.



Olá, Bom Dia!

Aparentemente você entendeu sim. Vendo o seu código, já consigo entender como proceder.

Faz tempo que procuro por isso... mas até o momento não consegui encontrar nada que me pudesse esclarecer tal duvida.

Só para constar: Eu trabalho com JSON faz muito tempo e adoro por o mesmo em uso por diversos motivos (não preciso citar), sendo assim, sobre o uso/aplicação do mesmo não tenho dúvidas. Como sempre utilizei somente para receber grandes volumes de retorno de um RESTFul, até aí tudo bem, mas como para enviar sempre foram poucos registros, geralmente "um-a-um" eu me saia bem, até que veio a necessidade e enviar grandes volumes também, daí nunca obtive sucesso.

Vou fazer uns testes me baseando no seu exemplo e te dou retorno. Caso seja necessário, gostaria de puder contar novamente com a sua ajuda;

Muitíssimo obrigado pela sua atenção.

Forte abraço!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar