Autor Thema
dasnirgendwo

Registriert: 31.01.2011
Beiträge: 1

Zugriff auf die XML-Api über fsockopen      Erstellt am 31.01.2011 um 17:00:24   
Leider habe ich wohl gerade einen Knoten im Kopf und ich bekomme bei meinem Aufruf der API über fsock immer folgenden fehler:

Zitat:
HTTP/1.1 400 Bad Request Content-Type: text/html Date: Mon, 31 Jan 2011 15:56:48 GMT Connection: close Content-Length: 20
Bad Request


Meine Funktion sieht so aus:

Zitat:

function PostToHost($host,$ssl,$path,$user,$pass,$referer,$data){
//Daten laden
$data_to_send = file_get_contents($data);
$data_to_send = utf8_encode($data_to_send);

//SSL einbinden, falls gewünscht
if($ssl){
$host = "ssl://".$host;
$port = 443;
}
else $port = 80;
//Verbindung öffnen
$fp = fsockopen($host,$port);
//Header erzeugen
fputs($fp,"POST ".$path." HTTPS/1.1\r\n");
fputs($fp,"Host: ".$host."\r\n");
if($user != "" && $pass != "") fputs($fp, "Authorization: Basic ".base64_encode($user.":".$pass)."\r\n");
fputs($fp,"Referer: ".$referer."\r\n");
fputs($fp,"Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp,"Content-length: ".strlen($data_to_send)."\r\n");
fputs($fp,"Connection: close\r\n\r\n");
fputs($fp,$data_to_send);
//Antwort abfangen
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
//Verbindung schliessen
fclose($fp);
//Antwort zurückgeben
return $res;
}



die funktion rufe ich wie folgt auf:
Zitat:
$afterbuy = PostToHost("api.afterbuy.de",true,"/afterbuy/ABInterface.aspx","","","api.afterbuy.de","XML_GetAfterbuyTime.xml");


Leider habe ich gerade keine Ahnung, warum es nicht funktioniert...