用于执行 ASync 方法的 C# 按钮.(尝试放入Web API(Phillips Hue))



所以我只是尝试制作一个应用程序,按下按钮并关灯。很简单,对吧?但我是个娃娃。
所以我以前从未玩过 Web API(或任何 api,真的(。我正在关注这个 MS 文档来掌握它。 修改它以使其工作,但它没有(显然(。
在Button_Click中,RunUpdate 错误"MainPage.Runupdate(("是一种方法,在给定的上下文中没有价值。

这可能是一个简单的解决方案,但我肯定会遇到更多。 有人来帮我吗? 谢谢!

代码如下:

public sealed partial class MainPage : Page
{
static HttpClient client = new HttpClient();
public class Light
{
//public string ID { get; set }
public string Name { get; set; }
public string state { get; set; }
}
public MainPage()
{
this.InitializeComponent();
client.BaseAddress = new Uri("http://192.168.0.100/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));

}
static async Task<Light> GetLightAsync(string path)
{
Light light = null;
HttpResponseMessage response = await client.GetAsync(path);
if(response.IsSuccessStatusCode)
{
light = await response.Content.ReadAsAsync<Light>();
}
return light;
}
static async Task<Light> UpdateLightAsync(Light light)
{
HttpResponseMessage response = await client.PutAsJsonAsync(
$"api/api/RjplsYoXQvdTl11DOVIo92SKNB7vYRfwZvqCzvDK/lights/1/state/", light.state);
response.EnsureSuccessStatusCode();
light = await response.Content.ReadAsAsync<Light>();
return light;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
RunUpdate.GetAwaiter().GetResult();
}
static async Task RunUpdate()
{
Light light = new Light { Name = "Unknown", state = "off" };
light = await UpdateLightAsync(light);
}
}

好吧,RunUpdate((是一个方法 - 你忘记了 RunUpdate 调用中的括号 Button_Click :)

最新更新