A_Http

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Am besten String formatieren mit den entsprechenden Parametern die übergeben werden sollen -> Beim PHP Script die Werte empfangen und auswerten -> Ergebnis ausgeben (zb. ein echo 1) -> Ergebnis im Callback empfangen und Rückgabe einleiten.

  • Beim Callback = Ja.

    public MyHttpResponse(index, response_code, data[]){
    // In this callback "index" would normally be called "playerid" ( if you didn't get it already :) )
    new
    buffer[ 128 ];
    if(response_code == 200) //Did the request succeed?
    {
    //Yes!
    format(buffer, sizeof(buffer), "The URL replied: %s", data); SendClientMessage(index, 0xFFFFFFFF, buffer);


    Du kannst data beim Callback aber auch gemütlich umbenenen.


    Hier wurde "data" zu "result" geändert (für den Callback):



    forward LicenseResponse(index, response_code, result[]);


    public LicenseResponse(index, response_code, result[])
    {


    ---------------


    Beim Funktionsaufruf = Nein - denn data[] sind dort die POST Daten.

    data[] = Any POST data you want to send with the request.

    Einmal editiert, zuletzt von Burnett ()

  • Nein, es würde nicht "Hallo" heißen, sondern "Hallo" zurück geben.


    Mein Beispiel oben war nur da, um es verständlich zu machen - das es nicht data[] heißen muss.


    Beim Funktionsaufruf von HTTP hast du 2 Möglichkeiten. Einmal GET und POST.


    (1) Wenn du GET benutzt, lässt du den 4. Parameter leer. Der 4. Parameter wäre für die POST Daten (data[]).


    (2) Wenn du POST benutzt, muss der 4. Parameter mit den POST Daten gefüllt werden.


    Da du hier aber GET benutzen möchtest, ist (1) für dich relevant.



    Das heißt also:


    HTTP(ID, HTTP_GET, URL, "", "Callback");


    Der 1. Parameter ist die ID (egal ob Playerid oder eine vordefinierte).


    Der 2. Parameter ist die Methode - in dem Fall HTTP_GET (wegen GET Request).


    Der 3. Parameter ist die URL (der Link zur Webseite).
    Wie du sehen kannst, ist der 4. Parameter leer. Wir erinnern uns was bei (1) steht.


    Beim 5. Parameter müssen wir den Callback angeben, also die Funktion, die nach dem REQUEST aufgerufen werden soll.


    Ich habe die Funktion einfach Callback genannt, damit das hier nicht verwirrt.


    Damit diese Funktion auch aufgerufen werden, müssen wir sie anlegen.


    Zuerst definieren:


    forward Callback(index, response_code, result[]);



    Dann die Funktion an sich:

    public Callback(index, response_code, result[])
    {
    new buffer[128];


    if(response_code == 200){


    format(buffer, sizeof(buffer), "Ausgabe von der Webseite: %s", result); //RESULT beinhaltet die Ausgabe der Webseite. Wenn auf der Webseite zb. Hallo steht, wird hier Hallo ausgegeben.
    SendClientMessage(index, 0xFFFFFFFF, buffer);


    }else{


    format(buffer, sizeof(buffer), "Fehler beim Aufruf der Webseite. Code: %d", response_code);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    }
    }


    //Ich habe derzeit kein SAMP drauf, mach es aber nacher drauf - dann mache ich dazu mal ein Tut.