我在本地计算机上运行了一个软件(Tally)。该软件可以作为服务器运行(http://localhost,端口号9000)。可以使用此URL进行API调用以导入和导出数据。 我是否可以从运行在远程Web服务器中的应用程序向此本地服务器发出http请求。
我试图从网络服务器这样做:
var request = require('request');
var options = {
uri: 'http://192.168.0.3:9000',
method: 'GET'
};
request(options, function (error, response, body) {
if (error) {
console.log("Invalid Network Details");
} else {
if (response.statusCode == 200) {
console.log(body);
} else {
console.log("Unauthorized Access!!");
}
}
});
我收到输出“无效的网络详细信息”
答案 0 :(得分:0)
我不知道计数应用程序,但在我看来,您应该打开防火墙中的9000端口(如果您的网络服务器位于不同的网络中,则打开路由器)。 在您的应用程序中,您不必在远程网络服务器中使用http://localhost,而是必须使用本地计算机的IP(如果您在同一网络中)或本地计算机的公共地址(如果您的计算机和您的网络服务器在不同的网络上。)
PD。你的公共地址通常每x次更改一次(可能是一个月的日子),所以我会使用noip等。
答案 1 :(得分:0)
你说
不在同一个局域网
和
http://192.168.0.3:9000
该IP地址位于private IPv4 address space。它无法通过互联网(直接)访问。
您需要为服务器提供面向公众的IP地址(可能通过在路由器上配置端口转发),然后将您的请求定向到该地址。