2014-12-07 63 views
5

我有一臺運行在NekoVM下的服務器,它提供了一個RESTLike服務。我試圖發送一個PUT /使用以下HAXE代碼DELETE請求到該服務器:如何發送來自Haxe/Neko的HTTP PUT請求?

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"); 

} 

的問題是,只有onStatus事件顯示的東西:

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

誰能給我解釋一下什麼我做錯了customRequest

+0

customRequest可能是異步的,所以也許你應該在退出main()函數之前等待一點回調? – 2014-12-09 10:27:31

+0

我試圖通過在customRequest之後添加一個Sys.Sleep(秒)。但僅此而已。值得注意的是,請求(true)正在從Haxe源調用customRequest。它沒有停頓。 – 2014-12-09 10:39:29

+0

根據框架,休眠程序也可能會阻止回調。你有一個* onData *的工作例子嗎? – 2014-12-09 10:44:30

回答

2

customRequest不叫onData

customRequest之後呼叫完成或者調用onError或先調用onStatus,則將響應寫入指定的輸出。