SmartyShark: HTTP-Request

Hallo an alle,

habe ein Problem. Will einen HTTP-Request übers Internet machen.
Wenn ich den request im Browser selber starte, dann bekomme
ich eine richtige XML-Struktur zurück mit den Daten die ich brauche.

Wenn ich den Request mit PHP starte, benutze die Funktion "http_post_fields", dann bekomme ich zwar die richtigen Daten zurück, aber keine XML-Struktur mit den dazugehörigen XML-Tags.

Was muss ich den für eine Funktion in PHP benutzen, damit
ich dasselbe wie im Browser (in diesem Fall Firefox 2) zurückbekomme ?

Gruss
SmartyShark

  1. Ich grüsse den Cosmos,

    Was muss ich den für eine Funktion in PHP benutzen, damit
    ich dasselbe wie im Browser (in diesem Fall Firefox 2) zurückbekomme ?

    Du musst die Abfrage genauso machen, wie der Firefox es macht.

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
    ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    1. Hi!

      Du musst die Abfrage genauso machen, wie der Firefox es macht.

      Und dazu gibt es verschiedene Wege.
      Du kannst die Funktion fsockopen() einsetzen, eine Verbindung zum Webserver herstellen und dann selbst HTTP-Kommandos absetzen.

      <?php  
      $fp = fsockopen( "www.example.com", 80, $errno, $errstr, 30 );  
      if ( !$fp )  
      {  
          echo $errstr( $errno ) . "<br />\n";  
      }  
      else  
      {  
          fputs( $fp, "GET / HTTP/1.0\r\n\r\n" );  
          while ( !feof( $fp ) )  
       {  
              echo fgets( $fp, 128 );  
          }  
          fclose( $fp );  
      }  
      ?>
      

      Wenn du aber ganz genau wissen willst, was der Firefox denn so alles mit dem Webserver zu besprechen hat, dann solltest du das Firefox-Addon Live HTTP Headers installieren.
      Damit ist es möglich, die gesendeten HTTP-Header (vom Server und vom Client) einzusehen.
      Wenn du selbst Header zum Server senden willst bzw. irgendwelche Request-Header ändern möchtest, dann wirf einen Blick auf die Addons Modify Headers und Header Monitor.

      Schöner Gruß,
      rob

      1. Hi!

        Du musst die Abfrage genauso machen, wie der Firefox es macht.
        Und dazu gibt es verschiedene Wege.
        Du kannst die Funktion fsockopen() einsetzen, eine Verbindung zum Webserver herstellen und dann selbst HTTP-Kommandos absetzen.

        <?php

        $fp = fsockopen( "www.example.com", 80, $errno, $errstr, 30 );
        if ( !$fp )
        {
            echo $errstr( $errno ) . "<br />\n";
        }
        else
        {
            fputs( $fp, "GET / HTTP/1.0\r\n\r\n" );
            while ( !feof( $fp ) )
        {
                echo fgets( $fp, 128 );
            }
            fclose( $fp );
        }
        ?>

        
        >   
        > Wenn du aber ganz genau wissen willst, was der Firefox denn so alles mit dem Webserver zu besprechen hat, dann solltest du das Firefox-Addon [Live HTTP Headers](https://addons.mozilla.org/de/firefox/addon/3829) installieren.  
        > Damit ist es möglich, die gesendeten HTTP-Header (vom Server und vom Client) einzusehen.  
        > Wenn du selbst Header zum Server senden willst bzw. irgendwelche Request-Header ändern möchtest, dann wirf einen Blick auf die Addons [Modify Headers](http://modifyheaders.mozdev.org/) und [Header Monitor](https://addons.mozilla.org/de/firefox/addon/575).  
        >   
        > Schöner Gruß,  
        > rob  
          
        Vielen Dank rob nochmal. Das mit dem fsockopen habe ich schon einwenig ausprobiert. Ich hoffe ich bekomme bald das Resultat das ich haben will. Dein Beitrag ist definitiv hilfreicher als der von Manuel B.  
          
        Beste Grüsse zurück  
        SmartyShark