Seite 1 von 1

WebRequest optimieren

Verfasst: 15.11.2012, 12:22:44
von dave
Hallo zusammen,

ich bin dabei, meine API etwas zu testen. Dabei checke ich zum einen einen Request, der vom selben Server kommt und einen Request, welcher von einem anderen Server kommt.

Was ich jedoch feststellen muss: Die Antwort dauert in beiden Fällen sehr lange ~ 5 Sekunden. Dabei tausche ich nur einen Api-Key sowie ein Api-Token aus und erzeuge nahnd dessen eine Antwort mit dem Inhalt success. Das ganze wird via POST gesendet und die Antwort ist JSON formatiert. Gibt es Möglichkeiten, den Request zu optimieren, sodass dieser nicht so lange dauert?

Folgend sieht der Request von Server 1 (http://der-dave.com/test.php) aus welches zum Server 2 (http://rest.flemor.de) gesendet wird:

Code: Alles auswählen

$opts = array(
    'http' => array(
        'method' => "POST",
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => 'api_key=1234&api_token=4567'
    ),
);

$context = stream_context_create($opts);
$file = file_get_contents('http://rest.flemor.de/authorize', false, $context);
print_r($file);
 
Ich habe bereits von cUrl gehört/gelesen, bietet dies einen schnelleren Datenaustausch? Ode rgibt es bessere Möglichkeiten als file_get_contents / stream_get_contents?

Re: WebRequest optimieren

Verfasst: 15.11.2012, 13:22:39
von Megger
Und die Zeit verstreicht für den Request und Response? Wieviel Zeit benötigt das bereitstellen der Daten?

Ansonsten wäre gzip noch eine Möglichkeit, aber bei ~5 Sekunden für ein paar Bytes sind schon heftig! Ansonsten keine Probleme mit dem Server von der Geschwindigkeit her?

Re: WebRequest optimieren

Verfasst: 15.11.2012, 13:34:10
von dave
Beide Server laufen vom Tempo hervorragend. Die Daten (eine Summe des Key und Token) werden auch von der Api in windeseile zurück gegeben, allerdings landet es auf dem anderen Server recht spät.

Ich habe ausserdem einen Test mit cUrl gemacht. Dort läuft es richtig zackig, keine Wartezeiten, allerdings könnte es eben sein, dass cUrl nicht von jedem Provider unterstützt wird.


Ich denke, es wird am Server liegen, der den Request tätigt, da ich file_get_contents() über eine Einstellung im Server-Interface erst freischalten musste. Leider habe ich keine Möglichkeit, über einen dritten Server zu testen, welcher nicht von Host Europe stammt, und somit möglicherweise auch ein file_get_contents gar nicht versucht, zu unterbinden.

Über cUrl allerdings funktioniert es bestens, was mir auch wesentlich mehr Möglichkeiten bietet und ein Request auch einfach zu senden ist. Und ich habe die Möglichkeit, einfach ganze Dateien zu senden etc. Das ist perfekt für meine Anwendung ;)