我正在尝试从华为umts stick内部web gui获取网站/ xml对象。
我已经使用libcurl用c编写了一个包装器,它工作得很好。现在,我想使用request将其移植到节点。
当我像这样从控制台调用一个带curl的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>对这个话题有什么想法吗?
发布于 2014-07-09 23:11:40
可能是curl正在发送服务器所需的报头。尝试将您的选项更改为:
var options = {
url: "http://192.168.1.1/api/monitoring/status",
headers: {
'User-Agent': 'curl/7.30.0',
'Accept': '*/*'
}
}https://stackoverflow.com/questions/24655618
复制相似问题