繁体   English   中英

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

[英]Retrieve data from API call response?

我正在开发一个应用程序,以获取有关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。

尝试改为访问responseContent属性:

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.Content;
}

希望有帮助!

我想这就是你想要的。

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM