Ir para conteúdo
  • Cadastre-se

dev botao

Carregar XML através da API do Mercado Livre


Ver Solução Respondido por programadorbq,
  • Este tópico foi criado há 428 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Solution

Boa tarde,

estou realizando a integração com a Api do Mercado Livre e não consigo realizar a carga do XML, sempre me retorna o erro: {"statusCode":400,"code":"bad_request","message":"Filename cannot be empty","requestId":"b70110a2-ed52-4d41-9125-e08d43c0a0fb"}

"Filename cannot be empty" - Gostaria de saber aonde informar o "Filename", segue meu código.

 

try
  dmML.ResetRESTComponentsToDefaults;
  //
  streamArquivo := TMemoryStream.Create;
  streamArquivo.LoadFromFile(strArquivoXML);
  streamArquivo.Position := 0;
  //
  dmML.RESTClientML.ContentType := 'multipart/form-data';
  dmML.RESTClientML.BaseURL := 'https://api.mercadolibre.com/';
  dmML.RESTRequestML.Resource := 'packs/' + strPackID + '/fiscal_documents';
  dmML.RESTRequestML.Method := TRESTRequestMethod.rmPOST;
  dmML.RESTRequestML.Params.Clear;
  dmML.RESTRequestML.Params.AddItem;
  dmML.RESTRequestML.Params.Items[0].name := 'fiscal_document';
  dmML.RESTRequestML.Params.Items[0].Value := strArquivoXML;
  dmML.RESTRequestML.Params.Items[0].ContentType := ctMULTIPART_FORM_DATA;
  dmML.RESTRequestML.Params.Items[0].Kind := pkFILE;
  dmML.RestRequestML.AddBody(streamArquivo, ctMULTIPART_FORM_DATA);
  dmML.RestRequestML.Execute;
  //
  Memo1.Text := dmML.RESTResponseML.Content.Trim;
except
  on E: Exception do
  begin
    MessageDlg(E.Message, mtError, [mbOK], 0);
  end;
end; 

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Bom dia, 

alterei o código para esse

dmML.ResetRESTComponentsToDefaults;

dmML.RESTClientML.ContentType := 'application/xml';
dmML.RESTClientML.BaseURL := 'https://api.mercadolibre.com/';
dmML.RESTRequestML.Resource := 'shipments/' + strShippingID + '/invoice_data?access_token=' + dmML.OAuth2AuthenticatorML.AccessToken + '&siteId=MLB';
dmML.RESTRequestML.Method := TRESTRequestMethod.rmPOST;
dmML.RESTRequestML.Params.Clear;
dmML.RestRequestML.AddBody(MemoXML.Text, ctAPPLICATION_XML);
dmML.RestRequestML.Execute;

MessageDlg(dmML.RESTResponseML.Content, mtInformation, [mbOK], 0);

e funcionou.

 

Espero que ajude!
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 428 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...