HTTP Schnittstelle

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • HTTP Schnittstelle

    Hallo.
    Ich kenn mich mit den Möglichenkeiten von Schnittstellen leider nicht gut aus.
    Ich möchte aber eine Schnittstelle zur Verfügung stellen, damit Partner mir Daten in meine Datenbank eintragen könne.

    Ich dachte hierbei einfach an eine "http-Schnittstelle"
    Beispiel
    http://example.com/schnittstelle.php...sd&action=uh22 usw.
    Funktioniert soweit auch gut.
    Aber es könnten ja auch Fehler auftretten.

    Ist das eine gute Lösung oder könnt ihr mir was besseres empfehlen.

    Wichtig zu wissen ist, dass auf der anderen Seite, welcher den Link anspricht kein Mensch sitzt, der das auslöst, sonder ein Server in einem Zeitinterval Daten übermitteln soll.

    Wenn man das so Lösen kann, wie kann man dem Programm dann auf der anderen Seite mitteilen "Alles OK und gespeichert" oder "Fehler"?

    Was für Schnittstellen gibt es außer dieser noch?

    Liebe Grüße,...
    Zuletzt geändert von iBumsti; 28.05.2010, 22:30.

  • #2
    Hallo,

    bitte bezüglich Beispiel-URLs die Forenregeln beachten (siehe Signatur)!

    Zitat von iBumsti Beitrag anzeigen
    Wichtig zu wissen ist, dass auf der anderen Seite, welcher den Link anspricht kein Mensch sitzt.
    Nicht ganz einfach aber machbar, z. B. mit Rechenaufgaben, die innerhalb kürzester Zeit gelöst werden müssen. Das kostet dich aber einen zusätzlichen Round-Trip.

    Zitat von iBumsti Beitrag anzeigen
    wie kann man dem Programm dann auf der anderen Seite mitteilen "Alles OK und gespeichert" oder "Fehler"?
    Mit den entsprechenden HTTP-Statūs, z. B. 201, 202 und 410, je nachdem.

    Google mal nach REST (mein Favorit) oder SOAP.

    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 28.05.2010, 17:35.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Ich habe schon so ein "Script" geschrieben, welches man nun über eine Adresse im Browser aufrufen kann.
      Theoretisch müsste dieses also auch über einen Server funktionieren.

      Jetzt muss die gegenseit an die Reihe.
      Ich schreib ganz einfach ein Script, welches in einem Interval die Seite mittels cronjob aufruft, und den Link mit korrekten Daten befüllt.

      Jetzt frag ich mich aber, wie ich kontrollieren kann, ob alles gut gegangen ist.
      Wie kann ich den HTTP Status Abfragen oder erkennen?

      Kommentar


      • #4
        Wenn du CURL benutzt mit curl_getinfo(), wenn du Sockets benutzt siehst du es sowieso. Wenn du es nur mit dem fopen-Wrapper machen wolltest, lass das bleiben und nimm CURL.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Danke. Ich werde mich morgen mal an google setzen und ein bissi forschen wie das dann aussehn kann.

          Kommentar


          • #6
            Wenn du es nur mit dem fopen-Wrapper machen wolltest, lass das bleiben und nimm CURL.
            Warum?

            Das Handbuch sagt:
            The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().
            Und ich kann das Verhalten bestätigen.
            Es gibt auch mit dem http_url_wrapper kein Problem an den Status zu kommen.

            Ich wüsste jetzt nicht was der http_wrapper schlechter als cURL machen würde.
            Und gerade für REST ist es sicherlich die einfacher zu bedienende Schnittstelle.
            Wir werden alle sterben

            Kommentar


            • #7
              Genau aus diesem Grund: Es sieht erstmal so einfach aus und dann stellt man irgendwann fest, dass man z. B. POST & PUT braucht, was für REST ja Mindestanforderungen sind und dann merkt man, dass der Wrapper das gar nicht kann und schreibt alles wieder um.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                dann stellt man irgendwann fest, dass man z. B. POST & PUT braucht, was für REST ja Mindestanforderungen sind und dann merkt man, dass der Wrapper das gar nicht kann
                Da bin ich aber vom Gegenteil überzeugt!

                method string

                GET, POST, or any other HTTP method supported by the remote server.

                Defaults to GET.
                Aus: PHP: HTTP context options - Manual
                Zuletzt geändert von combie; 29.05.2010, 17:36.
                Wir werden alle sterben

                Kommentar


                • #9
                  Zitat von combie Beitrag anzeigen
                  Da bin ich aber vom Gegenteil überzeugt!
                  Da lasse ich mich dann doch gerne belehren, ich hatte mich vermutlich nur auf diesen Satz gestützt:

                  Zitat von http://de2.php.net/manual/en/wrappers.http.php
                  Allows read-only access to files/resources via HTTP 1.0, using the HTTP GET method.
                  Vielleicht hätte dort mal erwähnt werden sollen, dass es offenbar doch geht. Man lernt nie aus, daher:
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar

                  Lädt...
                  X