2015-11-02 342 views
2
var request = require('request'); 
var options = {     
    url: 'https://connect1on1.com/api/web/index.php/v1/message/save-message', 
    method:'POST', 
    body:JSON.stringify({"id": data.user_id, "message": data.message}), 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded', 
     'Content-Length': data.length, 
     'Access-Token': data.access_token 
    } 
}; 

function callback(error, response, body) { 
    if (!error && response.statusCode == 200) { 
     console.log(error); 
     // var info = JSON.parse(response); 
    } 
} 
request(options, callback); 

我已經爲api調用添加了npm-request包。node - npm-request中無效的uri錯誤

我已經在選項中設置所有參數,並通過第二個選項作爲回調函數。

但我得到這個錯誤。 「無效的URI」

我的問題是我怎麼能叫安全的HTTPS URL在NPM請求

回答

3

請求包也應該處理HTTPS請求。

嘗試在你的選擇的關鍵url更改爲uri

附:我使用節點HTTPS庫,它可以工作,也可以考慮使用它。

這是一個ex。使用EcmaScript 2015中的NodeJS HTTPS庫:

let https = require(`https`); 
let postData = new Buffer(JSON.stringify({"id": data.user_id, "message": data.message})); 
let options = { 
    hostname: "www.connect1on1.com", 
    path: "/api/web/index.php/v1/message/save-message", 
    method: "POST", 
    headers: { 
     "Content-Type": "application/json", 
     "Content-Length": postData.length, 
     "Access-Token": data.access_token 
    } 
}; 

let req = https.request(options, (res) => { 
    if (res.statusCode !== 200) { 
     throw Error(`request statusCode is: ${res.statusCode}`); 
    } 
    res.setEncoding(`utf8`); 
    res.on(`data`, chunk => console.log(chunk)); 
}); 

req.on(`error`, (e) => { 
    throw Error(`problem with request: ${e.message}`); 
}); 

req.write(postData); 
req.end(); 
+0

我已經嘗試使用uri option.please分享您的代碼。 –

+0

如果你使用uri,你會得到同樣的錯誤? – Ziki

+0

在這個例子中通過postData的地方? –