Je travaille sur un petit exercice pour m'amuser en utilisant l'api Cat Facts. Le problème que je rencontre, n'est pas en affichant un «fait de chat» au hasard un à la fois. Mais j'essaie d'afficher une quantité aléatoire de faits jusqu'à cinq au total. Par exemple, l'utilisateur clique sur le bouton obtient 3 faits, l'utilisateur clique à nouveau sur le bouton et obtient 1 fait, l'utilisateur clique sur le bouton une troisième fois et obtient 1, 2, 3, 4 ou 5 faits. Im essayant de faire tout dans une activité/classe. http://catfacts-api.appspot.com/api/facts?number=5 affichera 5 faits et http://catfacts-api.appspot.com/api/facts renverra un. Voici comment mon code ressemble à ce jour,C# webrequest retournant la valeur de Json, produisant la quantité des résultats en utilisant Random
public class MainActivity : Activity
{
private ImageButton _mrWhiskersButton;
private TextView _catFactsTextView;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
_mrWhiskersButton = FindViewById<ImageButton>(Resource.Id.imageCatButton);
_catFactsTextView = FindViewById<TextView>(Resource.Id.catFactsText);
_mrWhiskersButton.Click += async delegate
{
string url = "Http://catfacts-api.appspot.com/api/facts";
JsonValue json = await FetchInfoAsync(url);
updateCats(json);
};
}
public async Task<JsonValue> FetchInfoAsync(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.ContentType = "application/json";
request.Method = "GET";
using (WebResponse response = await request.GetResponseAsync())
{
using (Stream stream = response.GetResponseStream())
{
JsonValue jsonDoc = await Task.Run(() => JsonValue.Load(stream));
Console.Out.WriteLine("Response: {0}", jsonDoc.ToString());
return jsonDoc;
}
}
}
private void updateCats(JsonValue json)
{
_catFactsTextView.Text = json["facts"][0];
}
}
}
Il est pas clair ce qui ne fonctionne pas exactement, ou ce qu'il est supposé faire que ce n'est pas. Veuillez relire ce que vous avez posté pour être sûr que vous énoncez clairement le problème. – Jason
donc si vous cliquez sur le lien http://catfacts-api.appspot.com/api/facts?number=5 vous verrez qu'il génère 5 faits aléatoires. maintenant le mien affiche actuellement seulement 1. Je crois que je dois faire quelque chose comme Random random = new Random(); Parce que je veux être capable de cliquer sur l'imageButton pour obtenir un fait aléatoire, et cela étant aussi un nombre aléatoire de faits, jusqu'à un maximum de 5 faits affichés. J'espère que cela clarifie la confusion. –
vous appelez "/ api/faits" - vous n'incluez pas "? Number = 5" ou tout autre argument après "faits". Même s'il retournait plusieurs faits, votre méthode updateCats() n'affiche que la première. – Jason