http request Download mit php5_curl

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von jens.becker, 11.02.2009.

  1. #1 jens.becker, 11.02.2009
    jens.becker

    jens.becker Grünschnabel

    Dabei seit:
    11.02.2009
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo,

    ich habe (versucht) ein PHP Script(CLI) zu schreiben, welches mit cURL ein PDF herunterladen und speichern soll. Das klappt bei einer normalen Datei die auf dem Server als Datei zur Verfügung steht.

    Das PDF wird nun leider von dem Server erzeugt und wird dann höchst wahrscheinlich als HTTP Request gesendet. Curl bekommt dann eine Weiterleitung http1.1 302 und quittiert das damit das er bis zum MAXREDIRECT versucht weiterzugehen und legt eine leere Datei an.

    Ich weiß nun nicht mehr welche anderen Optionen ich bei cURL mitgeben muss um diesen HTTP_Request anzunehmen.

    Bin für jeden Tip dankbar.

    PHP:
        function getPDF($pdfId$barcd){
        
    /****************************************************************************
        **    Diese Funktion nimmt IDs von einerRechnung  an. Diese Id werden an die
        **    Rechnung drucken Site übergeben, welche dann die PDF-Rechnung des Datensatzes 
        **    ausgibt
        **
        ****************************************************************************/    
            // Angemeldet?
            //$sf ist ein SOAP Client der für sich wunderbar funktioniert hier aber nur dafür benutzt wird eine SessionID zu bekommen
            
    global $sf;
            global 
    $configuration;
            
    //Wo soll gespeichert werden
            
    global $verzeichnisname;
            
            
    $rw=$sf->grantLogin();
            if (!
    $rw){
                return 
    false;
            }
            
    // Haupt-Url setzen
            
    $url substr($sf->endpoint0strpos($sf->endpoint".com") + 4);
            
    //id checken
            
    $pdfUrl $url."/apex/Rechnung_drucken_pdf?rid=".$pdfId
            
    //sendout($pdfUrl);
            
            // Initialisieren von CURL
            
    $ch curl_init();
            
    $postfields="rid=".$pdfId;
            
    $pdfarc=$verzeichnisname."/".$barcd.".pdf";
            
    $haendler=fopen($pdfarc,'w');
            
    $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
            
     
            
    curl_setopt($chCURLOPT_URL$pdfUrl);
            
    //curl_setopt($ch, CURLOPT_POSTFIELDS,$postfields);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    //     Not doing any verification of SSL certificates
            
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
            
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
            
    curl_setopt($chCURLOPT_MAXREDIRS5);
            
    curl_setopt($chCURLOPT_VERBOSE,0);
            
    curl_setopt($chCURLOPT_USERAGENT$useragent);
            
    curl_setopt($chCURLOPT_FILE,$haendler);
            
    // Set session ID
            
    curl_setopt($chCURLOPT_COOKIE'sid='.$sf->sessionid);
            
    //print($sf->sessionid);
            
    curl_setopt($chCURLOPT_BINARYTRANSFER1);
            
    $result curl_exec($ch);
            
    curl_close ($ch);


            
    //if (!fwrite($haendler,$result)) {
                //die('Konnte PDF '.$pdfId.' nicht schreiben!!');
            //}
            
    fclose($haendler);
                            
            return 
    true
        }
    Und das Log von curl
    Code:
    * About to connect() to eu0-api.########.com port 443 (#0)
    *   Trying 204.14.234.41... * connected
    * Connected to eu0-api.########.com (204.14.234.41) port 443 (#0)
    * successfully set certificate verify locations:
    *   CAfile: none
      CApath: /etc/ssl/certs
    * SSL connection using RC4-MD5
    * Server certificate:
    * 	 subject: /C=US/ST=California/L=San Francisco/O=########.com, Inc./OU=Applications/CN=eu0-api.########.com
    * 	 start date: 2008-11-25 00:00:00 GMT
    * 	 expire date: 2010-11-25 23:59:59 GMT
    * 	 issuer: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
    * SSL certificate verify ok.
    > GET /apex/Rechnung_drucken_pdf?rid=a0E20000001W3qtEAC HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
    Host: eu0-api.########.com
    Accept: */*
    Cookie: sid=440700D20000000HuRN!ARoAQIOkooZWdabiCq2QzNhn1pDS6IWlr0i2xb_rktw0BPV.UTuASrshtoMqgTyOFCGa9O6QWzXzyv9IplcujToT.ihL0e5U
    
    < HTTP/1.1 302 Found
    < Location: https://c.eu0.visual.#####.com/apex/Rechnung_drucken_pdf?rid=a0E20000001W3qtEAC
    < Server: 
    < Cache-Control: private
    < Content-Type: text/html
    < Transfer-Encoding: chunked
    < Date: Wed, 11 Feb 2009 21:01:21 GMT
    < 
    * Ignoring the response-body
    * Connection #0 to host eu0-api.########.com left intact
    * Issue another request to this URL: 'https://c.eu0.visual.#####.com/apex/Rechnung_drucken_pdf?rid=a0E20000001W3qtEAC'
    * About to connect() to c.eu0.visual.#####.com port 443 (#1)
    *   Trying 204.14.234.122... * connected
    * Connected to c.eu0.visual.#####.com (204.14.234.122) port 443 (#1)
    * successfully set certificate verify locations:
    *   CAfile: none
      CApath: /etc/ssl/certs
    * SSL connection using RC4-MD5
    * Server certificate:
    * 	 subject: /C=US/ST=California/L=San Francisco/O=########.com, Inc./OU=Applications/OU=Terms of use at www.verisign.com/rpa (c)08/CN=#####.com
    * 	 start date: 2008-09-17 00:00:00 GMT
    * 	 expire date: 2009-09-11 23:59:59 GMT
    * 	 issuer: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
    * SSL certificate verify ok.
    > GET /apex/Rechnung_drucken_pdf?rid=a0E20000001W3qtEAC HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
    Host: c.eu0.visual.#####.com
    Accept: */*
    Cookie: sid=440700D20000000HuRN!ARoAQIOkooZWdabiCq2QzNhn1pDS6IWlr0i2xb_rktw0BPV.UTuASrshtoMqgTyOFCGa9O6QWzXzyv9IplcujToT.ihL0e5U
    
    
    ..und das wiederholt sich dann

    Vielen Dank im voraus

    Jens
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

http request Download mit php5_curl

Die Seite wird geladen...

http request Download mit php5_curl - Ähnliche Themen

  1. C HTTP request

    C HTTP request: Hallo Community, in meinem derzeitigen Projekt geht es darum, eine HTTP Anfrage an einen Server zu schicken. Zum Programm, hier der...
  2. Mozilla will ungesichertes HTTP zurückdrängen

    Mozilla will ungesichertes HTTP zurückdrängen: Mozilla will erreichen, dass Webseiten möglichst nur noch verschlüsselt übertragen werden. Dazu müssen die Webseitenbetreiber HTTPS statt HTTP...
  3. Named Pipe und Lighttpd

    Named Pipe und Lighttpd: Hey, ich habe ein kleines Problem, bei dem ich nicht weiß, wie ich vorgehen soll. Im Prinzip ist mein Anliegen nicht schwer (denke ich mal). Auf...
  4. Https und samba

    Https und samba: Hallo, also ich habe ein Ordner namens data mit 100 GB gemountet diesen möchte ich nun mittels https erreichbar machen. Also das ich im Browser...
  5. Squid als RPCoHTTPS Proxy für Outlook Anywhere

    Squid als RPCoHTTPS Proxy für Outlook Anywhere: Hallo Community, ich habe bereits versucht in einem anderen Forum Hilfe zu finden leider ohne Erfolg, darum versuche ich nochmal hier mein...