我的 Compact Framework / Windows CE 应用程序在摩托罗拉 3190 手持设备上运行,需要在 Web API 应用程序中调用 RESTful 方法。
手持设备连接到主机,其 IP 地址显然可以通过以下方式推断:
IPAddress IPAddr = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
但是,如果我尝试使用它来调用运行 Web API 应用程序的服务器,所有达拉斯都会崩溃
所以我在想:我是否需要手持设备使用其 IP 地址连接到其主机,然后从那里为服务器机器提供另一个 IP 地址(不是“现实生活中的同一台机器”,但它是相同的机器在开发时)。
IOW,我需要类似的东西:
string uri = string.Format("http://{0}:{1}:28642/Bla/Bla?Bla=Blee&Bloo=Gloo", ActiveSyncHostIPAddress, WebAPIServerAddress);
?
我不知道这是否是“合法的”(IPAddress1:IPAddress2),或者,如果不是,这需要如何工作。
IOW,手持设备需要连接到它的主机(通常在客户的站点)才能与之通信。但是随后该主机需要与包含公开 RESTful (Web API) 方法的应用程序的服务器通信。
在设计时,只有两个参与者:
手持设备 => 开发机器(这是手持设备的主机,正在运行服务器/Web API 应用程序)
...但在场上,有三名球员:
手持设备 => 本地主机 => 运行 Web API 应用程序的服务器
如果“本地主机”没有“运行 Web API 应用程序的服务器”的肉体知识,这将如何实现?
或者,我是不是想错了,我只需要直接从手持设备连接到 Web API 服务器?如果是这样,我该怎么做?IOW,手持设备/Compact Framework 应用程序能否绕过其主机并直接到达其最终目的地?