Ankündigung

Einklappen
Keine Ankündigung bisher.

Post Übergabe via Curl

Einklappen

Neue Werbung 2019

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

  • Post Übergabe via Curl

    Hallo,

    ich versuche gerade eine Post Anforderung via Curl zu übergeben. In der Anleitung steht, dass ich folgendes übergeben soll:
    Code:
    POST /path/to/upload/script HTTP/1.0
    Connection: Keep-Alive
    User-Agent: My Client App v1.0
    Host:
    https://bulksell.ebay.de/ws/eBayISAPI.dll?FileExchangeUpload
    Content-type: multipart/form-data;
    boundary=THIS_STRING_SEPARATES
    Content-Length: 256
    --THIS_STRING_SEPARATES
    Content-Disposition: form-data; name="token"
    12345678987654321
    --THIS_STRING_SEPARATES
    Content-Disposition: form-data; name="file";
    filename="listings.csv"
    Content-Type: text/csv
    ... contents of listings.csv ...
    --THIS_STRING_SEPARATES
    Jetzt habe ich folgendes probiert:
    PHP-Code:
    $token "12345678987654321";
    $ebay_url "https://bulksell.ebay.de/ws/eBayISAPI.dll?FileExchangeUpload";

    $sendheaders = array(
    "User-Agent: My Client App v1.0",
    );
    $fields = array(
    "token" => $token,
    "file" => "@listing.csv"
    );

    $ch curl_init($ebay_url);

    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_HEADER1); // set to 0 to eliminate header info from response
    curl_setopt($chCURLOPT_NOBODY0); // set to 1 to eliminate body info from response
    curl_setopt($chCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_1_0); // use HTTP/1.0 instead of 1.1
    curl_setopt($chCURLOPT_RETURNTRANSFER1); // Returns response data instead of TRUE(1)
    curl_setopt($chCURLOPT_SSL_VERIFYPEERTRUE); // uncomment this line if you get no gateway response. ###
    curl_setopt($chCURLOPT_HTTPHEADER$sendheaders);
    curl_setopt($chCURLOPT_POSTFIELDS$fields); // use HTTP POST to send form data

    $resp curl_exec($ch); //execute post and get results
    echo $ch;
    curl_close ($ch); 
    Das ist meine erster Versuch mit Curl. Es kommt weder ein Ergebnis noch eine Fehlermeldung. In dem Ordner wo ich die Datei starte, liegt auch die Datei listing.csv.

    Kann bitte jemand darüber schauen? Kann ich irgendwie Fehler ausgeben? Oder kann ich mit das Übergebene anzeigen lassen?

    Vielen Dank.

  • #2
    Du solltest den Rückgabewert $resp auf false testen und wenn dem so ist dir den Fehler mit curl_error anzeigen lassen,
    Wie man generell die PHP Fehlerausgabe einschaltet steht hier.

    Warum steht ein @ vor dem Dateinamen?
    PHP-Code:
    "file" => "@listing.csv" 

    Kommentar


    • #3
      Vielen Dank. Das mit dem @ hab ich hier raus gelesen: http://php.net/manual/de/function.curl-setopt.php

      Jetzt gibt der Browser folgendes aus:
      Code:
      HTTP/1.1 100 Continue
      HTTP/1.1 200 OK
      Server: Apache-Coyote/1.1
      Set-Cookie: dp1=bu1p/QEBfX0BAX19AQA**5bed7d91^bl/DE5dceb111^;
      Domain=.ebay.de;
      Expires=Fri, 15-Nov-2019 14:07:13 GMT;
      Path=/
      Set-Cookie: s=CgAD4ACBaDZuRYzAwMTUzODIxNWYwYTllMWRlMjYyYzQ2ZmZmZmVkMmHVsNpJ;
      Domain=.ebay.de;
      Path=/
      Set-Cookie: nonsession=CgADKACBjckuRYzAwMTUzODIxNWYwYTllMWRlMjYyYzQ2ZmZmZmVkMmIAywABWgxRGTGiKSOi;
      Domain=.ebay.de;
      Expires=Thu, 15-Nov-2018 14:07:13 GMT;
      Path=/
      Cache-Control: private
      Pragma: no-cache
      Content-Type: text/html;
      charset=UTF-8
      Content-Length: 751 Date: Wed, 15 Nov 2017 14:07:13 GMT Dateien wurden hochgeladen. Ihre Referenznummer lautet .
      Damit kann ich überhaupt nichts anfangen. Aber es entspricht nicht dem Beispiel in der Anleitung (ganz oben). Selbst der Path etc. ist falsch.

      Kommentar


      • #4
        Jo, das ist die Antwort (Response) von eBay auf deinen (cURL-) Request.

        Hab oben ein paar Umbrüche reingemacht, Textwürste sind so ungut zu lesen
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Hmm. Ok. Was kann ich damit anfangen? Ich nichts. Ihr?

          Kann ich mir auch ausgeben lassen was ich an Ebay geschickt habe?

          Kommentar


          • #6
            Juhu. Ich habe den Fehler gefunden. Ab php5.6.0 muss man die @ Funktion wieder aktivieren. Also musste ich nur folgende Zeile einfügen:
            Code:
            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, FALSE);
            Vielen Dank.

            Kommentar

            Lädt...
            X