2014-12-07 4 views
5

Ich habe einen Server unter NekoVM, der einen RESTLike-Dienst bereitstellt. Ich versuche, eine PUT/DELETE Anfrage an diesen Server zu senden, um die folgenden Haxe Code verwendet:Wie man HTTP PUT Anfrage von Haxe/Neko sendet?

static public function main() 
{ 
    var req : Http = new Http("http://localhost:2000/add/2/3"); 
    var bytesOutput = new haxe.io.BytesOutput(); 

    req.onData = function (data) 
    { 
     trace(data); 
     trace("onData"); 
    } 

    req.onError = function (err) 
    { 
     trace(err); 
     trace("onError"); 
    } 

    req.onStatus = function(status) 
    { 
     trace(status); 
     trace("onStatus"); 
     trace (bytesOutput); 
    } 

    //req.request(true); // For GET and POST method 

    req.customRequest(true, bytesOutput , "PUT"); 

} 

Das Problem ist, dass nur die onStatus Ereignis etwas zeigt:

Main.hx:32: 200 
Main.hx:33: onStatus 
Main.hx:34: { b => { b => #abstract } } 

Kann mir jemand erklären, was Ich mache falsch mit customRequest?

+0

customRequest kann asynchron sein, also sollten Sie vielleicht ein wenig auf den Rückruf warten, bevor Sie die Funktion main() beenden? –

+0

Ich habe versucht, indem Sie ein Sys.Sleep (Sekunden) nach customRequest hinzufügen. Aber nichts mehr. Es ist erwähnenswert, dass die Anfrage (true) customRequest von Haxe-Quellen aufruft. Und es funktioniert ohne Pause. –

+0

Abhängig vom Framework kann das Speichern des Programms auch den Rückruf blockieren. Haben Sie ein funktionierendes Beispiel für * onData *? –

Antwort

2

customRequest ruft nicht onData.

Nach customRequest Anruf ist entweder onError wurde aufgerufen oder zuerst onStatus wurde aufgerufen, dann wurde die Antwort auf angegebenen Ausgang geschrieben.