2014-07-09 59 views
0

我試圖從huawei umts stick內部web gui獲取網站/ xml對象。node.js請求失敗umts Stick Webserver(huawei)

我用c編寫了一個使用libcurl的包裝器,它工作正常。現在我想使用請求將其移植到節點。

當我打電話,捲曲的URL從控制檯這樣的:

curl -G "http://192.168.1.1/api/monitoring/status" 

我得到正常結果:

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
<ConnectionStatus>901</ConnectionStatus> 
<SignalStrength>99</SignalStrength> 
<SignalIcon>5</SignalIcon> 
<CurrentNetworkType>4</CurrentNetworkType> 
<CurrentServiceDomain>3</CurrentServiceDomain> 
<RoamingStatus>0</RoamingStatus> 
<BatteryStatus></BatteryStatus> 
<BatteryLevel></BatteryLevel> 
<simlockStatus></simlockStatus> 
</response> 

當我嘗試打電話給本站的要求:

var request = require("request"); 

var options = { 
    url: "http://192.168.1.1/api/monitoring/status" 

}; 

request.get(options, function(error, response, body) { 

if(error) 
{ 
    console.log(error); 
} 
console.log("statusCode: " + response.statusCode); 
console.log("statusText: " + response.statusText); 
console.log(body); 



}); 

我得到了一個400錯誤:

statusCode: 400 
statusText: undefined 
<HTML><HEAD> 
<TITLE>IPWEBS - 400 Bad Request</TITLE> 
</HEAD> 
<BODY><H2>400 Bad Request</H2> 
<P>The request generated an error response.</P> 
</BODY> 
</HTML> 

關於這個問題的任何想法?

回答

0

可能是curl正在發送服務器需要的標頭。試着改變你的選項:FALSE`到你的選擇不應該「:

var options = { 
    url: "http://192.168.1.1/api/monitoring/status", 
    headers: { 
    'User-Agent': 'curl/7.30.0', 
    'Accept': '*/*' 
    } 
} 
+0

謝謝你的提示,我嘗試過,但不幸的是,結果是一樣的:(400的StatusCode只是 – solick

+0

的好辦法,也許jar添加'?這很重要,因爲這是默認的,你不會去很多地方,但只是爲了排除。 – glortho