Protocol field is empty

29/05/2023

0

Boa tarde pessoal,

Estou fazendo um sistema para buscar preço de produtos em determinados sites e me retornou o erro 'Protocol field is empty'.

Segue código

var
  HTTP: TIdHTTP;
  URL: string;
  Response: TStringStream;
  Regex: TRegEx;
  Match: TMatch;
  Price: string;
begin
  // Criando uma instância do componente TIdHTTP
  HTTP := TIdHTTP.Create(nil);
  try
    // Definindo a URL do site a ser pesquisado
    URL := 'https://www.drogaraia.com.br' + TIdURI.URLEncode(Edit1.Text);

    // Criando uma instância do componente TStringStream para receber a resposta
    Response := TStringStream.Create('');
    try
      // Fazendo a solicitação GET para o site
      HTTP.Get(URL, Response);

      // Utilizando expressões regulares para extrair o preço do HTML da página
      Regex := TRegEx.Create('<span class="preco">R\$\s*([\d\.,]+)</span>');
      Match := Regex.Match(Response.DataString);
      if Match.Success then
      begin
        // Obtendo o valor do preço encontrado
        Price := Match.Groups[1].Value;
        Memo1.Lines.Add('Preço encontrado: ' + Price);
      end
      else
      begin
        Memo1.Lines.Add('Preço não encontrado.');
      end;
    finally
      Response.Free;
    end;
  finally
    HTTP.Free;
  end;
end;


Basicamente, tenho um edit, um memo e um button.
As informações gostaria que retornasse no Memo.

Obrigado pessoal!
Vinicius David

Vinicius David

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar