je suis encore nouveau sur c # et j'essaye de créer une application pour cette page qui me dira quand je reçois une notification (répondu, commenté, etc.). Mais pour l'instant, j'essaie juste de faire un simple appel à l'API qui récupérera les données de l'utilisateur.
J'utilise Visual studio express 2012 pour créer l'application C #, où (pour le moment) vous entrez votre identifiant utilisateur, donc l'application fera la demande avec l'identifiant utilisateur et affichera les statistiques de cet identifiant utilisateur.
voici le code où j'essaye de faire la demande:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//Request library
using System.Net;
using System.IO;
namespace TestApplication
{
class Connect
{
public string id;
public string type;
protected string api = "https://api.stackexchange.com/2.2/";
protected string options = "?order=desc&sort=name&site=stackoverflow";
public string request()
{
string totalUrl = this.join(id);
return this.HttpGet(totalUrl);
}
protected string join(string s)
{
return api + type + "/" + s + options;
}
protected string get(string url)
{
try
{
string rt;
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
rt = reader.ReadToEnd();
Console.WriteLine(rt);
reader.Close();
response.Close();
return rt;
}
catch(Exception ex)
{
return "Error: " + ex.Message;
}
}
public string HttpGet(string URI)
{
WebClient client = new WebClient();
// Add a user agent header in case the
// requested URI contains a query.
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead(URI);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
data.Close();
reader.Close();
return s;
}
}
}
la classe est un objet et on y accède à partir du formulaire en analysant simplement l'ID utilisateur et en effectuant la demande.
J'ai essayé de nombreux exemples que j'ai consultés sur Google, mais je ne sais pas pourquoi je reçois de toutes les manières ce message " ".
je suis nouveau dans ce genre d'algorithme, si quelqu'un peut partager un livre ou un tutoriel qui montre comment faire ce genre de choses (expliquant chaque étape), je l'apprécierais
la source
html
chaîne+1
pour du code propre au fait ..Une autre façon consiste à utiliser 'HttpClient' comme ceci:
HttpClient vs HttpWebRequest
Mise à jour du 22 juin 2020: il n'est pas recommandé d'utiliser httpclient dans un bloc `` using '' car cela pourrait entraîner l'épuisement du port.
Si vous utilisez .Net Core 2.1+, pensez à utiliser IHttpClientFactory et à injecter comme ceci dans votre code de démarrage.
la source
HttpClient
instance est utilisée exactement une fois pendant la durée de vie du programme et est supprimée juste avant la fin du programme. C'est tout à fait correct et approprié.Le moyen le plus simple à mon avis
OU
la source
la source