Hallo zusammen,
ich schicke eine XML-Datei per HTTP POST an einen Server der firma X.
Der Server generiert daraufhin eine Antwort.
Die Antwort kommt nach ca. 10 Sekunden(bei einem Artikel).
Bei 10 Positionen (was durchaus normal ist) sind es ca. 40 Sekunden)
Nun gibt es von der Firma X einen Testsimulator, der eine XML-Anfrage an den Server schickt, bei dem die Antwort schon nach 2 Sekunden kommt.
Da der Server eine Anmeldung erfordert kommt nach dem Aufruf ein Anmeldefenster, ansonsten werden die gleichen Daten an den Server geschickt.
Kann mir jemand erkären, wieso meine Variante so viel langsamer ist ?
Welche Möglichkeiten gibt es noch, die Daten per HTTPS an den Server zu schicken ?
(CURL habe ich schon probiert, dauert auch 10 Sekunden.)
Gruß jogi
ich schicke eine XML-Datei per HTTP POST an einen Server der firma X.
Der Server generiert daraufhin eine Antwort.
PHP-Code:
$file = "";
$fp1 = fopen("./anfrage.xml","r");
$kennung = base64_encode("user:pass");
while(!feof($fp1))
{
$file1 = fgets($fp1, 100);
$file = $file.$file1;
}
$data = "";
$fp = fsockopen("ssl://server.com",443,$errstr,$errno);
if(!$fp)
{
die();
}
else
{
$file = addslashes($file);
$data = $file;
fputs($fp, "POST /webservice/XMLServlet HTTP/1.0\r\n");
fputs($fp, "Host: server.com\r\n");
fputs($fp, "Authorization: Basic ".$kennung." \r\n");
fputs($fp, "Content-length: ". strlen($data) ."\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data);
}
while(!feof($fp))
{
$fget = fgets($fp, 128);
$data .= $fget;
}
fclose($fp);
$xml_arr = explode("\r\n\r\n",$data);
echo $xml_arr[1];
Bei 10 Positionen (was durchaus normal ist) sind es ca. 40 Sekunden)
Nun gibt es von der Firma X einen Testsimulator, der eine XML-Anfrage an den Server schickt, bei dem die Antwort schon nach 2 Sekunden kommt.
PHP-Code:
<form method=POST target="Output" action="https://server.com">
<textarea name="xml_data" rows="10" cols="56">
-- gleicher inhalt wie in anfrage.xml
</textarea>
<input type=submit value=" START SIMULATION ">
</form>
Kann mir jemand erkären, wieso meine Variante so viel langsamer ist ?
Welche Möglichkeiten gibt es noch, die Daten per HTTPS an den Server zu schicken ?
(CURL habe ich schon probiert, dauert auch 10 Sekunden.)
Gruß jogi
Kommentar