Gerd Christian Kunze: Hilfe? Mit PHP und CURL ein POST über HTTPS (SSL) versenden

Beitrag lesen

Ich möchte mit CURL in PHP von meinem Server(1) aus ein POST (von XML Daten) auf einen anderen Server(2) ausführen. Dieser wiederum sendet mir dann eine Antwort, ebenfalls in XML. Soweit zur Theorie.

Irgendetwas scheint bei der Authentifizierung aber schief zu gehen.
Hier mal ein paar Daten (anonymisiert):

Der gesendete Test Header von Server(1):
Array
(
    [0] => POST /myservlet/mydirectory HTTP/1.1
    [1] => Host: https://my.server.com:443
    [2] => WWW-Authorization: Basic MY_BASE64_KEY
    [3] => Content-length: 801
    [4] => Content-Type: application/x-www-form-urlencoded
    [5] => Connection: close
)

Die Antwort(Header) vom Server(2)

HTTP/1.1 401 Unauthorized
connection: close
server: SAP J2EE Engine/6.40
www-authenticate: BASIC realm="Server_Realm"
set-cookie: saplb_*=(akrhp031_XI0_70)703778750; Version=1; Path=/
date: Wed, 17 Jan 2007 09:57:33 GMT

Die Frage ist nun was hier schiefgeht.

Eine generelle Verbindung ist möglich, solange ich CURLOPT_POST nicht verwende. Aber das ist es doch was ich will oder?

Ich habe dabei folgende CURL Optionen verwendet und in "allen möglichen" Kombinationen/Varianten ausprobiert:

CURLOPT_URL, CURLOPT_TIMEOUT, CURLOPT_USERAGENT, CURLOPT_FOLLOWLOCATION, CURLOPT_USERPWD, CURLOPT_PROXYUSERPWD, CURLOPT_SSL_VERIFYPEER, CURLOPT_SSL_VERIFYHOST, CURLOPT_POST, CURLOPT_CUSTOMREQUEST, CURLOPT_HTTPHEADER, CURLOPT_POSTFIELDS, CURLOPT_FAILONERROR, CURLOPT_HEADER, CURLOPT_VERBOSE, CURLOPT_RETURNTRANSFER

Falls das schonmal jemand erfolgreich implementiert hat und mir ein paar Codeschnipsel zukommen lassen könnte, wäre das sehr hilfreich.

Ich bin mit meinem Latein am Ende und für jeden Vorschlag dankbar.

MfG GCK

PS: Der Key ist richtig (besteht aus: base64_encode($this->str_auth_user.":".$this->str_auth_password);