idhttp i funkcja Get() - jak odczytać informację ze źródła strony?

0

Witam
Mam problem z odczytaniem zawartości strony, której źródło zaciągam funkcją Get() używając komponentu Indy10 TIdHttp

Memo1->Text = idHTTP1.Get( https://ext-isztar4.mf.gov.pl/taryfa_celna/browseNomen.xhtml?cnCode=4&suffix=80&lang=PL&page=1&date=20150717&cssfile=tarbro );

Po wczytaniu tego adresu do przeglądarki jest informacja następująca: Niepoprawny format kodu nomenklatury
Dlaczego nie jest ten tekst widoczny w źródle wczytanym do TMemo? W jaki sposób mogę odczytać tą informację. Dziękuję

0

Nie wiem jak tam w c++ ale w Delphi GET jest procedurą ponadto trzeba usunąć spację z przodu i dodać "ciapki" od stringa:

idHTTP1.Get('https://ext-isztar4.mf.gov.pl/taryfa_celna/browseNomen.xhtml?cnCode=4&suffix=80&lang=PL&page=1&date=20150717&cssfile=tarbro');

Ponadto TidHTTP ma przeładowaną procedurę GET, która jako drugi parametr przyjmuje TStream z którego teorytycznie jesteś w stanie wyciągnąć zwróconą zawartość.

Gdybyś jednak zechciał przerzucić się na Synapse to całość wyglądałaby tak (synapse wystarczy unity dorzucić do katalogu z projektem i będzie działać)

uses HTTPSend, ssl_openssl;
procedure TForm1.Button1Click(Sender: TObject);
var
  HTTP: THTTPSend;
begin
  HTTP := THTTPSend.Create;
  try
    HTTP.HTTPMethod('GET', Edit1.text);
    Memo1.Lines.Assign(HTTP.Headers);
    Memo2.Lines.LoadFromStream(HTTP.Document);
  finally
    HTTP.Free;
  end;
end;
0

Zgadza się to wszystko ale sposób wczytania czy to poprzez parametr czy tak jak jest w przykładzie nie zmienia faktu, że pobrane źródło nie ma treści o którą mi chodzi

0

gdy wklejam twój link w przeglądarkę, to na stronie mam "Niepoprawny format kodu nomenklatury".
Co ty chcesz z tej strony wyciąć skoro podajesz jakiś url, który wyświetla takie info już w przeglądarce?

0

Właśnie potrzebuję tą informację "Niepoprawny format kodu nomenklatury" bo nie zawsze się pojawi w zależności od wartości wpisanego adresu. Wpisz taki adres a zobaczysz że nie ma tego komunikatu: https://ext-isztar4.mf.gov.pl/taryfa_celna/browseNomen.xhtml?cnCode=44&suffix=80&lang=PL&page=1&date=20150717&cssfile=tarbro
Chodzi mi o to żeby wyodrębnić wartość "Niepoprawny format kodu nomenklatury" w przypadku niewłaściwego wprowadzenie danych do adresu url. Dziękuję za zainteresowanie.

0

No jak nie ma jak jest

0

odpaliłem delphi i poda idHttp, dodałem IdSSLIOHandlerSocketOpenSSL, następnie w properties idHttp ustawiłem IOHandler na ten komponent z ssl.
A pod button dałem kod:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text := IdHTTP1.Get('https://ext-isztar4.mf.gov.pl/taryfa_celna/browseNomen.xhtml?cnCode=4&suffix=80&lang=PL&page=1&date=20150717&cssfile=tarbro');
end;

i musiałem dodatkowo wkleić do głównego folderu programu dwie dllki o nazwach ssleay32.dll, libeay32.dll, które znalazłem w katalogujakimś z delphi. Kod źródłowy strony wtedy mi program pobierał i wkleiłem do notatnika ten kod i ctrl + F i znalazłem to zdanie zaczynające się od "Niepoprawny format" więc wszystko gra?

Swoją drogą ktoś miał w necie inny problem i musiał dodać:

IdHTTP1.ReadTimeout := 30000;

1 użytkowników online, w tym zalogowanych: 0, gości: 1