代码之家  ›  专栏  ›  技术社区  ›  John Smith

物联网核心API/API/wifi/网络-Bug?

  •  0
  • John Smith  · 技术社区  · 6 年前

    这个 Device Portal Core API 包含连接/断开Wifi的Post方法。 This project 法拉费就是一个例子。 该项目中的所有其他方法都可以正常工作,但在尝试连接时,返回的响应是StatusCode 500 “内部服务器错误” 。我正在树莓Pi3上运行Windows Iot Core v.10.0.16299.309。

    在请求中构建并传递门户身份验证,并在base 64中对wifi密钥进行编码。请求uri如下所示。 http://192.168.137.1:8080/api/wifi/network?interface=1A6E4125-B554-40CB-916E-EE55CEBAD6C8&op=connect&ssid=MyWifiSSID&key=42dhi2nuk%182v&createprofile=yes

    是否有人认为这种方法有问题,或者错误是否可以复制?谢谢你的帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Rita Han    6 年前

    您还需要 编码WiFi SSID 到base64格式。在C语言中,您可以这样做:

            byte[] stringToBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(wifiSsid);
            string encodedValue = System.Convert.ToBase64String(stringToBytes);
    

    供您参考 project ,您需要使用 EncodeTo64(this.SelectedWifi.SSID) 而不是 this.SelectedWifi.SSID 在连接Wifi的Post方法中,如下所示:

                    using (HttpResponseMessage response = await client.PostAsync(string.Format("http://[IP ADDRESS]:8080/api/wifi/network?interface={1}&ssid={2}&op=connect&createprofile=yes&key={3}", this.DeviceName, this.InterfaceGUID, EncodeTo64(this.SelectedWifi.SSID), EncodeTo64(this.WifiKey)), null))