4DV16R6 HTTP Get 命令在 (GSM/WCDMA) 加密狗网络中不起作用,但它在以太网/Wifi 网络上平稳运行。在加密狗网络中,执行 HTTP Get 命令时会出现“HTTP server unreachable”错误。
我还在同一个(加密狗网络)中测试了 4DV16R6 的 IC TCP/IP 命令(即 TCP_Open,TCP_Send,...) - 它工作正常。
另外,我还有机会在 4DV17 到最新的 R2 版本上进行测试——同样的问题(HTTP 服务器无法访问错误)。但在 4DV15 或所有以下版本中 - 它工作正常。
似乎从 4DV16 开始,一些升级一定是导致它的问题......?
除此之外,我尝试在执行 HTTP Get 命令时进行数据包嗅探——奇怪的是,在将任何数据包发送到目标之前会出现问题。服务器,即甚至没有数据包发送请求,但弹出错误消息“HTTP 服务器无法访问”。
有人可以弄清楚发生了什么吗?
为了测试,我使用了简单的 HTTP Get 代码:
C_TEXT(URLPic_t) URLPic_t:="http://www.4d.com/sites/all/themes/dimention/images/home/logo4D.jpg" ARRAY TEXT(HeaderNames_at;0) ARRAY TEXT(HeaderValues_at;0) C_PICTURE( Pic_i) $httpResponse:=HTTP Get(URLPic_t;Pic_i;HeaderNames_at;HeaderValues_at)
更新:让我解释一下我对此的一些研究,以便帮助大家了解正在发生的事情。
我还在各种网络(比如以太网、WiFi 甚至移动热点)上对此进行了测试。HTTP Get 在所有这些网络上都可以正常工作,因为它们都有自己的物理(mac)地址。但是(GSM/WCDMS)加密狗网络中的问题是它没有任何物理(mac)地址,因为这是一个基于蜂窝的设备(调制解调器),而不是它有一个 IMEI 号码。像任何其他电话或调制解调器一样。
所以我的假设是 HTTP Get 命令在基于蜂窝的设备网络上失败(或在上述非蜂窝设备上正常工作)。
我想知道是否有人可以在任何基于蜂窝的设备网络上尝试此操作并查看结果。
此外,从 PC 的热点使用手机的网络(作为 WIFI)与您使用可以成功运行的直接 WIFI 网络的情况完全相同。由于 PC 使用启用了其 WIFI 接口(具有物理 MAC 地址)来传输数据包,因此也可以正常工作。
虽然这只是我发现的一个假设,但可能是导致此问题的其他原因(不确定)?
我希望现在这将提供一些关于我面对来自 4Dv16 和更高版本的任何 HTTP 客户端命令(比如 HTTP Get 或 HTTP 请求)的真实场景的一些细节。