Ankündigung

Einklappen
Keine Ankündigung bisher.

cURL http api

Einklappen

Neue Werbung 2019

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

  • cURL http api

    Hi Leute,
    ich bin totaler Newbie, und ziemlich am Ende mit meinem Latein (ich kann garkein Latein xddd).

    Ich möchte eine Verbindung zu einer API herstellen und diese dann auslesen,
    sprich die Arrays oder Strings ausgeben und weiterverwenden oder miteinbinden auf meiner Seite.


    API aufuruf (IP:123.456.789/check.php? aufrufe bekomme ich folgendes angezeigt als Bsp:
    Warteschlange: 0 Signal: ok Time: 156924581...usw usf

    Seitequelltext
    Line 1 Warteschlange: 0
    Line 2 Signal: ok
    Line3 Time: 1654891656

    Mein Code sieht wie folgt aus:

    PHP-Code:
    $url "http://123.456.78.900/check.php?";
    $ch curl_init(); curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT4);
    $inhalt curl_exec($ch);
    if(!
    $inhalt) { echo curl_error($ch);
    }
    curl_close($ch);
    print_r($inhalt); 
    Ich gehe Local http da ich ssl habe und das ist auch nicht das Problem hier, das Problem ist wenn ich die API so aufrufe bekomme ich nichts zurückgeliefert einfach garnichts alles Leer, ich habe viele Übungen gemacht mit Wetter api usw usf da klappt alles wunderbar da die in Arrays stecken aber hier ist das Problem das es Strings sind aber dennoch müsste ich doch was zurückgeliefert bekommen damit ich wenigstens string parse durchziehen kann. Ich wäre für jede Hilfe dankbar. Die IP Adresse ist fiktiv da es privat ist und ich es nicht öffentlich nocht nicht ausgeben möchte hoffe des ist okay danke.

  • #2
    error reporting akitivieren

    PHP-Code:
    <?php
    error_reporting
    (-1);
    ini_set('display_errors','On');
    $url "http://123.456.78.900/check.php?";
    $ch curl_init(); curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT4);
    $inhalt curl_exec($ch);
    if(!
    $inhalt) { echo curl_error($ch);
    }
    curl_close($ch);
    print_r($inhalt);
    aber wozu CURL? du kannst dohc einfach echo file_get_contents('http://123.456.78.900/check.php?'); aufrufen

    Kommentar


    • #3
      wenn ich über echo file_get_contents(); gehe bekomme ich SSL error bekomme ich auch bei cURL aber dort gibt es kene Fehlermeldung mehr wenn ich eben auf local gehe (https zu http)

      Kommentar


      • #4
        Was ich definitiv nicht verstehe die API normal aufgerufen hat Strings auf der Seite und im Seitenquelltext aber wenn ich dann über cURL aufurfe öffnet sich die API einfach nichts mehr drin :/
        während bei allen anderen APIs alles wunderbar klappt

        Kommentar


        • #5
          Zitat von noSkill06s Beitrag anzeigen
          wenn ich über echo file_get_contents(); gehe bekomme ich SSL error bekomme ich auch bei cURL aber dort gibt es kene Fehlermeldung mehr wenn ich eben auf local gehe (https zu http)
          ja du hast wohl eine https Adresse und der Browser kann das halt wunderbar valedieren, PHP versucht das halt auch zu tun. Du musst es deaktvieren.

          PHP-Code:
          <?php
          error_reporting
          (-1);
          ini_set('display_errors','On');
          $url "https://123.456.78.900/check.php?";

          $context stream_context_create([
              
          'ssl'=>['verify_peer' => false]
          ]);

          $content file_get_contents($url,false,$context);

          echo 
          $content;

          Kommentar


          • #6
            Diese "Schalter" gibts für cURL auch: https://thisinterestsme.com/php-curl...ificate-error/

            Kommentar


            • #7
              Des Problem ist extrem banal gewesen: kurz var_dump($blablabla) Fehlermeldung 301-> keine http Weiterleitung zurück zu https ->Fehlermeldung SSL..->Einfach

              curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

              voilà es geht, im Moment kann ich ssl ignorieren da ich local bin aber ja klar Dauerzustand kann des und darf es nicht sein.

              Kommentar


              • #8
                Ja, wie wir eh oben schon gesagt haben.. einfach die SSL/Zert Prüfung deaktivieren und "gut" (naja.. eigentlich nicht gut) ist

                In dem Link oben in #6 steht übrigens auch, wie man es dann richtig macht.

                Kommentar

                Lädt...
                X