C# C Discord Bot,尝试为命令包含API

C# C Discord Bot,尝试为命令包含API,c#,json,api,discord,C#,Json,Api,Discord,我是一个新手程序员,我正在尝试为服务器组装一个小型Discord机器人。在花了一两个小时试图弄清楚如何使用API之后,我放弃了,来寻求帮助 目前我正在使用 public static async Task<string> GetRequest(string url) { using (HttpClient client = new HttpClient()) { using (HttpResponseMessage r

我是一个新手程序员,我正在尝试为服务器组装一个小型Discord机器人。在花了一两个小时试图弄清楚如何使用API之后,我放弃了,来寻求帮助

目前我正在使用

public static async Task<string> GetRequest(string url)
    { 
        using (HttpClient client = new HttpClient())
        {
            using (HttpResponseMessage response = await client.GetAsync(url))
            {
                using (HttpContent content = response.Content)
                {
                    string myContent = await content.ReadAsStringAsync();
                    var obj = JObject.Parse(myContent);
                    var ret = (string)obj["joke"];
                    Console.WriteLine("joke: {0}", ret);
                    return ret;
                }
            }                
        }
    }

当笑话API使用笑话时,代码正在寻找带有标签事实的内容;您不能只在不同的API之间使用相同的代码,特别是当它们具有类似JSON的结构化内容时

试着改变

var ret=stringobj[事实]

致:

var ret=stringobject[笑话]

我建议你阅读:在W3

请务必始终注意API文档:

获取一个随机笑话作为JSON:


您可以看到JSON结构和笑话字段。

我在复制/粘贴代码时就是这么做的@CasinoBoyale很明显,控制台输出显示的代码比您共享的代码多,请共享@CasinoBoyale,另外,请指出哪些代码不起作用;纯粹基于您共享的代码,字段访问是个问题。使用3不会将输出输出到控制台。
$ curl -H "Accept: application/json" https://icanhazdadjoke.com/
{
  "id": "R7UfaahVfFd",
  "joke": "My dog used to chase people on a bike a lot. It got so bad I had to take his bike away.",
  "status": 200
}