0

我有一个软件(Tally)在我的本地机器上运行。该软件可以作为服务器运行(http://localhost,端口号 9000)。可以使用此 URL 进行 API 调用以导入和导出数据。我可以从我在远程网络服务器中运行的应用程序向这个本地服务器发出 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!!");
        }
    }
});

我得到一个输出“无效的网络详细信息”

4

2 回答 2

0

你说

不在同一个局域网

http://192.168.0.3:9000

该 IP 地址位于私有 IPv4 地址空间中。它不能(直接)通过 Internet 访问。

您需要为服务器提供一个面向公众的 IP 地址(可能通过在路由器上配置端口转发),然后将您的请求定向到该地址。

于 2017-11-06T11:02:50.007 回答
0

我不了解计数应用程序,但在我看来,您应该在防火墙中打开 9000 端口(如果您的网络服务器位于不同的网络中,则在路由器中打开)。在您的应用程序中,您必须使用本地计算机的 ip(如果您在同一网络中)或本地计算机的公共地址(如果您的计算机和您的计算机),而不是在远程网络服务器中使用http://localhost网络服务器位于不同的网络上)。

PD。您的公共地址通常每 x 次更改一次(可能是一天或一个月),所以我会使用 noip o 之类的东西。

于 2017-11-06T07:16:20.770 回答