IdHttp -> oddaje blad Http/1.1 000

0

Witam
Kozystajac z Rozdział 11

napisalem kod:

procedure TForm1.Button1Click(Sender: TObject);
var
oem: string;
url: String;
html: String;
begin
  oem:=edit1.text; // np:12345AA000
  //url:='http://4programmers.net';
  url:='http://opposedforces.com/parts/info/';
  url:=url+oem;
  html:=idhttp1.get(url);
  memo1.lines.text:=html;

  end;

o ile z http://4programmers.net dziala i wyswietla w memo1 kod html o tyle pod linkiem http://opposedforces.com/parts/info/12345AA000/ wywala blad

HTTP/1.1 000
.
Wszystko bylo by fajnie jak bym wiedzial co on oznacza, w googlach brak info na ten temat.

prosze o pomoc, jak zrobic by zrodlo sie wyswietlaqlo z memo, lub uargumentowac dlaczego nie bedzie dalo sie tego zrobic ;-)

dziekuje i pozdrawiam.

0

W Indy nie zrobisz (chyba że wnikniesz w źródła i poprawisz) . Sprawa wygląda tak serwer w jakiś dziwny sposób zwraca kod odpowiedzi tak że Indy (i nie tylko np. sniffer też) interpretuje go jako 000 tutaj dowód na to:
user image
No ale spoko wszystko by było cacy gdyby nie głupie Indy nie sypało wyjątkami przy odpowiedzi serwera innej niż 200 (i 301, 302 gdy HandleRedirect na true) to by można było przeboleć bo od wyjątek można obsłużyć i dostałbyś normalny kod HTML (bo serwer daje normalną odpowiedź też widzę w snifferze ale nie chce tutaj dawać takiego dużego obrazka) ale nie w Indy bo jest nadgorliwe i przy błędzie czyści buffer odpowiedzi gdy napotka błąd wiec nie dostaniesz kodu.
Tak myślę że Synapse nie sypie żadnymi wyjątkami co by się nie działo 400, 404, 500 wsio mu rawno dalej zadowolone z siebie i pozostawia obsługę tego użyszkodnikowi więc spokojnie powinno z tym sobie poradzić więc uwaga pierwszy raz proponuję użyć Synapse zamiast Indy (zawsze to była alternatywa a tu chyba + dla Synapse).

0

Dzieki za pomoc i zaangazowaniekAzek
Ale Synapse niestety mi nie pomoze, gdyz ta aplikacja ma byc na Win, OS X, i IOS ;/
Gdybys mogl mi podpowiedziec jak mam sie zabrac do tego zeby w Indy zablokowac wyjatki ;-) to mozna by bylo to tak zrobic ;-)
Pozdrawiam.
Zastanawialem sie jeszcze nad innym rozwiazaniem, mianowicie generowania linku w label by sie pojawial link (by otwierac strone w domyslnej przegladarce w systemie), ale problem jest taki ze jak zrobie mu w shelu na win to niebedzie tego respektowac ios czy osx.

0

Zastanawialem sie jeszcze nad innym rozwiazaniem, mianowicie generowania linku w label by sie pojawial link (by otwierac strone w domyslnej przegladarce w systemie), ale problem jest taki ze jak zrobie mu w shelu na win to niebedzie tego respektowac ios czy osx.

openurl w Lazarusie.

0

Ok... Dzieki ;) lazarus jak kojaze to darmowe delphi na win i mac :)
Zrobilem juz w inny sposob
http://cmsk.net/subaru/programy/SPI1.0.exe
Przerobilem tez na osx-a ale walcze poki co z komunikacja miedzy xe3 na vmware a osx ;)
Jutro tzn dzisiaj poniedzialek powinienem zrobic na osx i na ios.

0

Lazarus to nie darmowe Delphi http://pl.wikipedia.org/wiki/Lazarus

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