Todavía soy nuevo en C # y estoy intentando crear una aplicación para esta página que me dirá cuando reciba una notificación (respondida, comentada, etc.). Pero por ahora solo estoy tratando de hacer una simple llamada a la API que obtendrá los datos del usuario.
Estoy usando Visual Studio Express 2012 para construir la aplicación C #, donde (por ahora) ingresa su identificación de usuario, por lo que la aplicación hará la solicitud con la identificación de usuario y mostrará las estadísticas de esta identificación de usuario.
aquí está el código donde estoy tratando de hacer la solicitud:
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 clase es un objeto y se accede a ella desde el formulario con solo analizar el ID de usuario y realizar la solicitud.
He intentado muchos de los ejemplos que he buscado en Google, pero no tengo ni idea de por qué estoy recibiendo este mensaje " ".
Soy nuevo en este tipo de algoritmo, si alguien puede compartir un libro o tutorial que muestre cómo hacer este tipo de cosas (explicando cada paso), lo agradecería.
fuente
html
cadena+1
para un código limpio por cierto ..Otra forma es usar 'HttpClient' así:
HttpClient frente a HttpWebRequest
Actualización del 22 de junio de 2020: no se recomienda usar httpclient en un bloque de 'uso' ya que podría causar el agotamiento del puerto.
Si usa .Net Core 2.1+, considere usar IHttpClientFactory e inyectar así en su código de inicio.
fuente
HttpClient
instancia se utiliza exactamente una vez durante la vida del programa y se elimina justo antes de que el programa salga. Eso es completamente correcto y apropiado.La forma más sencilla de mi opinión.
O
fuente
fuente