Beiträge mit dem Stichwort ‘cURL’

PHP/.NET/C#: Fehlerhafte SSL Zertifikate ignorieren

Veröffentlicht am 8. Februar 2011 um 21:44 by Fabian Martin Permalink

Wieder so ein Code Schnipsel den ich häufiger mal brauche und immer wieder vergesse.

Bei der Entwicklung neuer Programme nutze ich oft selbst signierte Zertifikate, die aber sinnigerweise von keinem Programm ohne weiteres angenommen werden. Firefox meldet beispielsweise „Diese Verbindung wird nicht vertraut“, .NET wirft eine Exception mit der Meldung „Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden.“  und das cURL Modul von PHP gibt ein leeres Ergebnis zurück.

ssl_fehler

Was am Ende durchaus gewollt ist, stört bei der Entwicklung. Mit den folgenden Code Schnipseln könnt ihr das „Problem“ beheben.
weiterlesen »

Lighttpd 1.4: HTTP 417 Expectation Failed

Veröffentlicht am 13. Januar 2010 um 15:22 by Fabian Martin Permalink

Versucht man mit einer cURL oder .NET Anwendung POST Daten an einen Lighttpd 1.4 Server zu senden, bekommt man die Meldung


HTTP/1.1 417 Expectation Failed

Dies liegt daran, das die Programme einen Expect: 100-continue Header senden, und als Antwort 100 (Continue) oder 417 Expectation Failed erwarten. Lighty kennt den Header jedoch nicht, und antwortet deswegen mit dem besagten 417 Expectation Failed.

Der Expect: 100-continue Header soll verhindern, das Daten an den Server gesendet werden, die nicht benötigt werden. Erkennt der Server z.B. das er die Anfrage ablehnen muss, kann er dies dem Client mitteilen, noch bevor die POST Daten übermittelt wurden.

Wer dennoch POST Daten an Lighty senden möchte, kann die folgenden Paramter anpassen:

.NET


System.Net.ServicePointManager.Expect100Continue = false;

cURL unter PHP

curl_setopt($objCurl, CURLOPT_HTTPHEADER, array('Expect: '));

cURL auf der Kommandozeile

curl -v -H "Expect: " -F "field=value" http://example.com/upload.php

Alternativ aktualisiert man auf Lighttpd 1.5. Dieser kennt den Expect: 100-continue Header und beantwortet entsprechende Anfragen korrekt.

Browser senden übrigens keinen Expect: 100-continue Header.