从API调用响应中检索数据?

时间:2019-02-05 03:57:56

标签: c# rest

我正在开发一个应用程序,以获取有关C#的API经验。我正在从一个涉及笑话的站点中提取数据,但是无论我如何尝试,我似乎都无法得到实际的响应。

我已经介绍了几种不同的方法,这是我得到的最远的方法。我正在使用RestSharp库,并且正在返回RestSharp.RestResponse。我尝试了几种反序列化的方法,因为这是我所需要的。在我使用的API中,默认响应格式为text / html。将其提取到包含笑话本身的字符串中的任何技巧都将受到赞赏。

    public void CreateJoke()
    {
        var client = new RestClient("https://icanhazdadjoke.com/");
        client.AddDefaultHeader("user-agent", "Dadbot");

        var request = new RestRequest("https://icanhazdadjoke.com/");
        var response = client.Get(request);
        lblJoke.Text = response.ToString();
    }

预期结果:得到一个我可以放入标签的字符串。实际结果:RestSharp.RestResponse。

2 个答案:

答案 0 :(得分:3)

尝试访问Content的{​​{1}}属性:

response

希望有帮助!

答案 1 :(得分:0)

我想这就是你想要的。

public string CreateJoke()
{
    var request = (HttpWebRequest)WebRequest.Create("https://icanhazdadjoke.com/");
    request.Method = "GET";
    request.Accept = "text/plain";

    var jokeResponse = request.GetResponse();

    var joke = string.Empty;

    using (var sr = new StreamReader(jokeResponse.GetResponseStream()))
    {
       joke = sr.ReadToEnd();
    }

    //Console.WriteLine(joke);

    return joke;
}