2013-07-11 28 views
0

你好,我想用xively和curl函數。 我使用nodejs來檢索我的arduino與我的覆盆子的值。 我想知道如果你知道如何使用curl與nodejs,因爲經過多次嘗試,我失敗了。 謝謝node.js Xively curl

+0

你可以顯示你已經嘗試過的初始代碼嗎?我認爲這將有助於作爲出發點。 – praks411

回答

1

如果您指的是PHP curl,那麼您只需要知道node.js沒有「curl」(表示「客戶端URL」)。它具有http模塊,使用requestget方法來發出http請求。它具有與PHP捲曲相同的用途。

您仍然可以使用child_process.exec執行shell腳本,但是這樣做會導致您將通過exec運行的應用程序可能取決於平臺,在這種情況下,它可能在Windows上工作,不會在Linux或任何類似問題上運行。對於xively你應該使用http.request - 這將爲你做所有的工作。而且這將更容易,因爲通過child_process.execcurl獲得的輸出將比通過http.request難得多。

因此,基於文檔中的位置:https://xively.com/dev/tutorials/curl/
我已經http.request替代,以查詢其飼料:

var data = JSON.stringify({ 
    title: 'My feed', 
    version: '1.0.0' 
}); 

var req = http.request({ 
    host: 'api.xively.com', 
    path: '/v2/feeds', 
    method: 'POST', 
    headers: { 
    'X-ApiKey': 'YOUR_API_KEY_HERE', 
    'Content-Type': 'application/json', 
    'Content-Length': data.length 
    } 
}, function(res) { 
    res.setEncoding('utf8'); 
    console.log('Status Code: ' + res.statusCode); 
    console.log('Headers:'); 
    console.log(res.headers); 

    var buffer = ''; 
    res.on('data', function(chunk) { 
    buffer += chunk; 
    }); 
    res.on('end', function() { 
    console.log('complete'); 
    console.log(buffer); 
    }); 
}); 

res.write(data); 
res.end(); 

我已經寫了這個瀏覽器的代碼,不知道是完全正確,請嘗試一下,讓我知道是否有任何問題,我會糾正上面的代碼。
正如您所看到的,它支持CURL提供的所有功能,並且從使用角度來看更加靈活和更好。

隨意使用它們來進行HTTP調用。

+0

用node.js怎麼執行一個shell腳本? – user2572562

+0

我已經更新了上面的答案。但是,請使用'http.request',它與curl相同,並且更易於使用。與'child_process.exec'調用'curl'一樣,使用起來更復雜,編碼也更多。儘管沒有任何優勢。 – moka

+0

但是可以執行一個腳本shell? curl是如何在nodejs中?curl --request PUT \ --data-binary'{「datastreams」:[{「id」:「1」,「tags」:「'1」,「current_value」:「12」}]}'\ --header「X-ApiKey:Q」\ --verbose \ https://api.xively.com/v2/feeds/ – user2572562

0

但是可以執行腳本shell嗎?

捲曲是這樣如何在nodejs中?curl --request PUT \ --data-binary'{「datastreams」:[{「id」:「1」,「tags」:「'1」,「current_value」:「12」}]}'\ --header「X-ApiKey:Q」\ --verbose \ https://api.xively.com/v2/feeds/