Przekazywanie danych z Delphi do zdalnego skryptu PHP

0

Dzień dobry,
Mam po stronie serwera w PHP skrypt, który wyciąga odpowiednie dane z sklepu internetowego uruchomionego na platformie AtomStore. Skrypt pobiera dane i zwraca strukturę XML. Muszę teraz stworzyć aplikację w Delphi, która w pierwszym kroku wyśle do skryptu zakres zamówień, a następnie odbierze strukturę. Pomóżcie w jaki sposób wysłać do zdalnego skryptu PHP dane, a potem je odebrać?

2
  • A ten PHP wystawia jakieś ładne api czy trzeba wklepać dane do formularza żeby otrzymać XMLa?
  • Słyszałeś o metodach HTTP? Pewnie to będzie szło POSTem
1

ja bym napisała w tym PHP Webservice z poprawnym WSDL a potem w Delphi już łatwo, ale to trochę z armatą na muchę ;)

3

Możesz użyć komponent idHTTP (zwykła komunikacja HTTP).

  memo1.Text := IdHTTP1.Get('http://twoj.sktypt.pl/data.php?parametry');

albo

  memo1.Text := IdHTTP1.Post('http://twoj.sktypt.pl/data.php?parametry', somePostData );

Żeby odpowiedzieć dokładniej musisz pokazać tą strukturę zamówień i sposób jej przekazywania do skryptu PHP.

0

Skrypt PHP łączy się do sklepu po API (SOAP). Jest metoda do pobrania zamówień. Generalnie sama część PHP działa. Chodzi w zasadzie tylko o przekazanie danych, a potem odebrać to co metoda zwróci.

1
Buster napisał(a):

Skrypt PHP łączy się do sklepu po API (SOAP).

Ale ja nie pytam jak się PHP łączy doczegoś jeszcze dalej. Ja sie pytam czy ten skrypt PHP wystawia jakieś API do połączenia się czy formularz. Czy odpalasz go w cronie co określoną ilość batchu. Czy jest wyzwalany trigerem z bazy danych. Czy jeszcze jakoś inaczej

2

Delphi całkiem dobrze generuje obiektowego klienta wg SOAP / WSDL, nie jest to warte ręcznego dziubania.

Nie nauczę cie SOAP w poście, nie da się.

0

@ZrobieDobrze:
Tu nawet nie chodzi o naukę całego SOAP. Tylko receptę na połączenie się ze sklepem, wywołanie metod i odczyt danych. Samego SOAP-a to ja mniej więcej znam. Ten skrypt PHP to ja sam pisałem. Niestety w Delphi nie bardzo wiem jak to ogarnąć.

1

A nie możesz tego skryptu wyrzucić i poprać danych bezpośrednio w Delphi? Bo teraz masz w uproszczeniu dwa rozwiązania:

  • To do czego dążysz: |Delphi| -- Jakiś protokuł komunikacyjny np SOAP --> |Skrypt w PHP| -- SOAP --> |Sklep|
  • To co miałbyś pow wyrzuceniu skryptu w PHP: |Delphi| -- SOAP --> |Sklep|
0

@KamilAdam: Gdybym umiał połączyć się z SOAP w Delphi to bym bardzo chętnie tak zrobił. Ale nie za bardzo wiem jak. Tak jak z resztą pisałem ciut wyżej. Używam Delphi Community 10.4

2

No to jak chcesz przesłać dane miedzy dwoma programami napisanymi w dwóch różnych językach? (mały hint, właśnie w tym celu powstał SOAP)

  • Możesz SOAPem - ale mówisz że nie umiesz
  • Możesz zrzucić do pliku/bazy z PHP i czytać w Delphi - ale to pewnie będzie też trudniejsze niż wyrzeźbić ręcznie tego SOAPa w Delphi
  • Możesz RESTa albo jakimś kastomowym protokołem, ale to nie ma sensu i będzie jeszcze trudniejsze niż SOAPem

IMHO SOAP z Delphi w tym wypadku jest najprostszym rozwiązaniem. Trudno mi sobie wyobrazić żeby ktoś wymyślił tu coś lepszego, ale może się komuś uda :D

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