Iot 核心 API /api/wifi/network - 错误?
Iot Core API /api/wifi/network - Bug?
Falafel 的 Device Portal Core API contains a Post method for connecting/disconnecting Wifi. This project 就是一个例子。
该项目中的所有其他方法都可以正常工作,但在尝试连接时,返回的响应是 StatusCode 500 "Internal server error"。我在 Raspberry Pi3 上 运行 Windows Iot Core v.10.0.16299.309。
门户身份验证已构建并在请求中传递,wifi 密钥以 base 64 编码。请求 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
有没有人发现这种方法有问题,或者错误是否可以重现?感谢您的帮助。
您还需要将 WiFi SSID 编码为 base64 格式。在 C# 中,您可以这样做:
byte[] stringToBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(wifiSsid);
string encodedValue = System.Convert.ToBase64String(stringToBytes);
对于您引用的 project,您需要在 Post 方法中使用 EncodeTo64(this.SelectedWifi.SSID)
而不是 this.SelectedWifi.SSID
来连接 Wifi,如下所示:
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))
Falafel 的 Device Portal Core API contains a Post method for connecting/disconnecting Wifi. This project 就是一个例子。 该项目中的所有其他方法都可以正常工作,但在尝试连接时,返回的响应是 StatusCode 500 "Internal server error"。我在 Raspberry Pi3 上 运行 Windows Iot Core v.10.0.16299.309。
门户身份验证已构建并在请求中传递,wifi 密钥以 base 64 编码。请求 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
有没有人发现这种方法有问题,或者错误是否可以重现?感谢您的帮助。
您还需要将 WiFi SSID 编码为 base64 格式。在 C# 中,您可以这样做:
byte[] stringToBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(wifiSsid);
string encodedValue = System.Convert.ToBase64String(stringToBytes);
对于您引用的 project,您需要在 Post 方法中使用 EncodeTo64(this.SelectedWifi.SSID)
而不是 this.SelectedWifi.SSID
来连接 Wifi,如下所示:
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))