Announcement

Collapse
No announcement yet.

kommunikation über http!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • kommunikation über http!

    Tach,

    zwei programme sollen über http mit hilfe von "indy-komponenten" miteinander kommunizieren. der datenaustausch soll über xml gehen!
    habe sowas noch nie gemacht!
    kann jemand bißchen hintergrundinfos liefern, was zu beachten ist und wie das überhaupt funktioniert und vielleicht hat ja jemand erfahrung mit den "indy-komponenten"!
    wäre super!

    Gruß

    Markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo Markus,

    hier findest Du Demos für die Komponenten. Da ist bestimmt auch das ein oder andere für Dich dabei. Ansonsten riecht Deine Frage eigentlich nach Einsatz von Webservices.

    http://www.projectindy.org/DemoDownloads/Indy9Demos_26Oct04.zip

    MFG
    Andr&#233

    Comment


    • #3
      Hallo Andre,

      vielen Dank!

      Gruß

      Marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        ich habe nähere details:
        Java-anwendung und delphi-anwendung sind auf dem selben rechner. die java-anwendung stellt ne datenbankanfrage an die delphi-anwendung.
        die delphi-anwendung sucht in der datenbank und schickt, dass ergebnis in xml-format zurück!

        gruß

        Marku
        Herzliche Grüße

        Markus Lemcke
        barrierefreies Webdesign

        Comment


        • #5
          nochmal kurz ne frage:
          wenn ich die komponenten
          <b>TIdHTTP</b> und <b>TIdHTTPServer</b> im selben fomular habe, kann zwischen diesen beiden ne kommukation aufgebaut werden, richtig?

          gruß

          Marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            Ja, aber nur eine HTTP = HyperTextTranferProtocol

            Besser allg. Client und Server Komponente nehme
            Christian

            Comment


            • #7
              danke!
              wenn ich nun einer fremden anwendung ne nachricht schicken möchte, was muss ich wissen von der anwendung und welche komponente brauche ich
              Herzliche Grüße

              Markus Lemcke
              barrierefreies Webdesign

              Comment


              • #8
                tach,

                ich bräuchte <b>dringend</b> hilfe!
                kurz nochmal zur aufgabe:

                eine java-anwendung und eine delphi-anwendung sollen miteinander reden. die java-anwendung ist nicht von uns, liegt auch kein programmcode vor. die delphi-anwendung ist von uns! die java-anwendung schickt daten in xml-format an die delphi-anwendung. die delphi-anwendung startet eine datenbank-abfrage, verpackt das ergebnis in xml-format und schickt es der java-anwendung zurück.
                die kommunikation soll über http mit indy-komponenten laufen!
                dass die java-anwendung daten der delphi-anwendung schickt, klappt, aber ich weiss nicht wie die delphi-anwendung dass suchergebnis über http der javaanwendung zurück schicken kann!

                kann mir bitte jemand helfen?

                gruß

                Marku
                Herzliche Grüße

                Markus Lemcke
                barrierefreies Webdesign

                Comment


                • #9
                  Hi Markus,<br>vorab, ich müsste das auch erst mal auschecken..<br>was mir dabei zunächst einfällt: Du brauchst (wie du angemerkt hast) einen Client und einen Server. Diese werden mit der Gegenstelle verbunden (IP). Kannst du bei entsprechenden Einstellungen des Client schon irgendwelche Daten empfangen?<br>cu Michae

                  Comment


                  • #10
                    Hallo Markus,

                    die geschilderte Aufgabe ist der klassische Fall eines <b>XML Web Services</b>. Der Vorteil liegt dabei darin, dass wir uns nicht mehr selbst um das Umverpacken und Verschicken der XML-Pakete kümmern müssen, sondern díe jeweiligen Entwicklungsumgebungen auf der Delphi- und Java-Seite dies über automatisch generierte Proxy-Klassen selbst erledigen.

                    Wenn trotzdem alles von Hand erledigt werden soll, muss zuerst die Ergebnismenge aus der Datenbank in XML konvertiert werden. Im Fall des Zugriffs über die ADO-Objekte könnte das zum Beispiel so aussehen:
                    <pre>
                    <b>resourcestring</b>
                    cCS = <font color="#9933CC">'Provider=SQLOLEDB.1;Password=;Per sist Security Info=True;'</font> +
                    <font color="#9933CC">'User ID=sa;Initial Catalog=Northwind;Data Source=(local)'</font>;
                    <br>
                    <b>procedure</b> TSOAPRSXMLObj.GetRSDataAsXML(<b>const</b> sSQL: <b>String</b>;
                    <b>var</b> sXML: <b>String</b>);
                    <b>var</b>
                    aConnection : Connection15;
                    aRecordSet : RecordSet;
                    <b>begin</b>
                    CoInitialize(<b>nil</b>);
                    <b>try</b>
                    aConnection := CoConnection.Create;
                    aConnection.CursorLocation := adUseClient;
                    aConnection.Open(cCS, <font color="#9933CC">''</font>, <font color="#9933CC">''</font>, adOpenForwardOnly);
                    <b>try</b>
                    aRecordSet := CoRecordSet.Create <b>as</b> RecordSet;
                    <b>try</b>
                    aRecordSet.CursorLocation := adUseClient;
                    aRecordSet.Open(<font color="#9933CC">'select * from Customers'</font>,
                    aConnection, adOpenStatic,
                    adLockReadOnly, 0);
                    sXML := RecordsetToXML(aRecordSet);
                    <b>finally</b>
                    aRecordSet := <b>nil</b>;
                    <b>end</b>;
                    <b>finally</b>
                    aConnection.Close;
                    <b>end</b>;
                    <b>finally</b>
                    CoUninitialize;
                    <b>end</b>;
                    <b>end</b>;
                    <br>
                    <b>function</b> RecordsetToXML(<b>const</b> aRS: Recordset): <b>String</b>;
                    <b>var</b>
                    aStrm : Stream;
                    <b>begin</b>
                    aStrm := CoStream.Create;
                    aRS.Save(aStrm, adPersistXML);
                    Result := aStrm.ReadText(aStrm.Size);
                    aStrm.Close;
                    <b>end</b>;
                    </pre&gt

                    Comment


                    • #11
                      Hallo Abdreas,

                      danke für Deinen Code!
                      mein Problem war bisher zunächst mal überhaupt die kommunikation zwischen beiden programmen, weil ich bis vor zwei Tagen die Indy-HTTP-Komponenten noch gar nicht kannte!
                      Seit gestern weiß ich ein bißchen mehr!
                      nun muss ich noch herausfinden, in welcher form die java-anwendung das xml gerne hätte, hierbei kann mir selbstverständlich vom Forum keiner helfen. Problem ist halt auch, dass ich absoluter xml-anfänger bin!

                      Gruß

                      Marku
                      Herzliche Grüße

                      Markus Lemcke
                      barrierefreies Webdesign

                      Comment

                      Working...
                      X