如何在put之后从philips hue bridge获得http json响应

时间:2016-02-21 19:56:54

标签: c# json http philips-hue

我正在尝试在完成PUT请求后从飞利浦色调中获得json响应。飞利浦hue有一个内置的Web服务器命令行,当我使用hue web界面发送一个基本的json消息,如“{”on“:True}”时,我得到一个json响应,告诉我该请求是成功的。消息如下所示:

"[
    {
        "success": {
            "/lights/1/state/on": true
        }
    }
]"

现在,当我通过下面的设置向hue发送命令时,我总是得到一个TRUE .IsSuccessStatusCode(我假设因为该消息是由色调收到的吗?)即使我发送一些应该导致一个json的json错误。例;我可以使用json {“on”:导致错误}并仍然获得TRUE。

所以我试图弄清楚如何在发送PUT后从色调中​​恢复上面的json响应。下面是我正在使用的代码。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;


    async static void setLight()
    {
        HttpClient client = new HttpClient();

        HttpRequestMessage request = new HttpRequestMessage();

        String myJson = "{\"on\":false}";

        var content = new StringContent(myJson, Encoding.UTF8, "application/json");

        HttpResponseMessage returnStatement = await client.PutAsync("http://192.168.1.3/api/139f12ce32a30c473368dbe25f6586b/lights/1/state", content);

        Console.WriteLine(returnStatement.IsSuccessStatusCode);

    }

1 个答案:

答案 0 :(得分:2)

 Console.WriteLine("Return Statment:" + await returnStatement.Content.ReadAsStringAsync());

这将返回我正在寻找的json hue响应。我只是继续获取​​基本的http信息,直到我把await关键字放在它前面。向Q42.hueApi大喊大叫,我在你的代码中占据了一席之地,这有很大帮助。