2017-11-04 12 views
0

私は初心者のプログラマーで、小さなDiscordボットをサーバー用にまとめようとしています。 https://icanhazdadjoke.com/apiからAPIを使用する方法を理解しようとしている良い1時間か2時間を過ごした後、私はあきらめて助けを求めるようになった。C#Discord Bot、コマンド用のAPIを追加しようとしています

瞬間

私はコードが冗談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; 
       } 
      }     
     } 
    } 

答えて

0

を使用しています。異なるAPI間で同じコードを使用することはできません。特に、JSONのような構造化されたコンテンツがある場合にはそうです。私はあなたが読んで推薦する

var ret = (string)object["joke"]

What is JSON?を超えるW3で

することに

var ret = (string)obj["fact"]

変更してみてください。あなたはJSONの構造、および "冗談" を参照してくださいすることができます

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

:JSONとしてランダムなジョークをフェッチ

、常にAPIドキュメントに注意を払うようにしてくださいフィールド。

+0

私はコードをコピー/貼り付けしようとしました。 [コンソール出力](https://i.gyazo.com/152387a61eebc8c655125dc06c48ff23.png) –

+0

@CasinoBoyaleは、コンソール出力があなたが共有した以上のコードを表示していることを明確に示しています。[MCVE](https://stackoverflow.com/) help/mcve) – Clint

+0

@CasinoBoyaleさらに、それが**正確に**動作していないことを示してください。純粋にあなたが共有したコードに基づいて、フィールドアクセスが問題になります。 – Clint

関連する問題