【问题标题】:Windows Mobile: Internet on the device via codeWindows Mobile:通过代码在设备上上网
【发布时间】:2016-08-12 16:04:00
【问题描述】:

我有一台在 Windows Mobile 上的设备。该设备可以通过 WI-FI 访问互联网。我尝试编写代码以使用 WebHttpRequest 和 WebHttResponse 通过 Internet 获得响应。

string url = "http://172.20.24.83:80/ProductRESTService.svc/GetProductList/";
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "GET";
        req.ContentType = "application/xml; charset=utf-8";
        req.Timeout = 300000000;
        req.Headers.Add("SOAPAction", url);

        HttpWebResponse response = (HttpWebResponse)req.GetResponse();

它在模拟器上运行良好。不幸的是,我有一个例外:

无法仅在设备上建立与网络的连接

设备可以通过浏览器访问互联网,但我无法通过代码访问。

你有什么想法吗?

【问题讨论】:

    标签: windows-mobile-6.5


    【解决方案1】:

    虽然你说你可以访问互联网,但与 IP 172.20.24.83 相同的私有互联网是否是私有互联网的一部分:

    Private Internet Addresses:
    10.0.0.0/8 IP addresses: 10.0.0.0 -- 10.255.255.255
    172.16.0.0/12 IP addresses: 172.16.0.0 -- 172.31.255.255
    192.168.0.0/16 IP addresses: 192.168.0.0 – 192.168.255.255
    

    问题是,你设备的浏览器可以连接到 172.20.24.83 吗?

    我假设你的电脑也在 172.16.0.0/12 网络上,所以模拟器是你电脑的一部分,也连接到这个网络。 但是使用 WiFi 连接时,您的设备连接到哪个网络?

    这可能是路由(不同子网)或交换机/防火墙问题。

    查看开始>设置>连接>WiFi,然后选择活动的 WiFi 适配器。这将显示有关 WiFi 连接的 IP 地址、子实体等的详细信息。您也可以使用我的NetStatCF 了解连接的详细信息。

    【讨论】:

    • 我可以通过 Internet Explorer 浏览器连接到 172.20.24.83。输入172.20.24.83:80/ProductRESTService.svc/GetProductList 会给我浏览器上的响应。不幸的是,我不能通过代码来做到这一点。老实说,我不知道如何解决这个问题
    • 然后尝试一个没有 req.ContentType = "application/xml; charset=utf-8"; 的简单 webrequest请求超时 = 300000000; req.Headers.Add("SOAPAction", url);这就是 Internet Explorer 的作用
    • 同样的错误。我的应用程序(或对互联网的访问)可能会被某些东西阻止吗?
    • 您可以在设备上运行 MS NetAnalyzer (microsoft.com/en-us/download/details.aspx?id=19484) 并在“Internet Explorer Mobile”中输入 URL 并运行代码时比较网络跟踪。如果您看不懂,您可以将网络跟踪作为附件发布。
    猜你喜欢
    • 2013-02-02
    • 2015-09-11
    • 2016-02-29
    • 2010-10-25
    • 2011-11-26
    • 1970-01-01
    • 2012-04-30
    • 2019-09-20
    • 2013-02-08
    相关资源
    最近更新 更多