Notak kontsultatzeko programa
Kodea

Hurrengo kodea, https konexio seguruetan zihurtagiriak onartzeko erabiltzen da. jasotzen dugu X509Certificate delako eta hori konparatu beharko genuke, baina, errazteko beti onartzen dugu (noski segurtasuna galduz). Hau erabiltzeko using System.Security.Cryptography.X509Certificates; gehitu behar dugu gure proiektura.

class CertPolicy: ICertificatePolicy
{
	public boolCheckValidationResult(ServicePoint srvPoint, 
			X509Certificate certificate,
			WebRequest request,int certificateProblem)
	{
	// Beti true itzultzen du zihurtagiri guztiak onartuz
		return true;
	}
}			

Hemendik aurrera web zerbitzariari eskaerak egin behar dizkogu, application/x-www-form-urlencoded sistema erabiliz, formularioak eta POST sistema. Honetarako nahi dugun orria aztertu behar dugu eskaera nola egin ikusteko. Honetarako oso erabilgarria da Firefoxen livehttpheaders gehigarria.

UNED unibertsitateko kode nagusia:

public string Consulta_uned (string usr, string pas, string conv)
{
	try
	{
		//Izen ematea, zerbitzarira konektatu eta datuak bidaltzen ditugu.
		HttpWebRequest solicitud = (HttpWebRequest) WebRequest.Create(host);
		string DatosUsuario ="usuario=" + usr + "&url=&clave=" + pas + "&acceso=Acceso"; 
		solicitud.CookieContainer = new CookieContainer ();
		ServicePointManager.CertificatePolicy = new CertPolicy();
		//Eskariaren formatua
		byte[] datos = Encoding.Default.GetBytes(DatosUsuario); 
		solicitud.Method = "POST"; 
		solicitud.ContentType = "application/x-www-form-urlencoded"; 
		solicitud.ContentLength = datos.Length;
		//Datuak idazten ditugu
		Stream sout = solicitud.GetRequestStream(); 
		sout.Write(datos, 0, datos.Length); 
		sout.Flush(); 
		sout.Close(); 
		
		HttpWebResponse respuesta = (HttpWebResponse) solicitud.GetResponse();
		
		//Cookieak hartu eta gordetzen ditugu
		CookieContainer ContenedorCookies = new CookieContainer ();
		foreach(Cookie c in respuesta.Cookies)
			ContenedorCookies.Add( newCookie (c.Name, c.Value));
		
		//Izena ematearen fasea bukatuta
		
		// Orain conv deialdiaren notak eskatzen ditugu
		solicitud = (HttpWebRequest) WebRequest.Create(hostnotas); 
		string Convocatoria ="Convocatoria=" + conv + "&Enviar=Consultar+Calificaciones"; 
		
		solicitud.CookieContainer = ContenedorCookies;
		
		datos = Encoding.Default.GetBytes(Convocatoria); 
		solicitud.Method = "POST"; 
		solicitud.ContentType = "application/x-www-form-urlencoded"; 
		solicitud.ContentLength = datos.Length; 
		
		sout = solicitud.GetRequestStream(); 
		sout.Write(datos, 0, datos.Length); 
		sout.Flush();
		sout.Close();
		
		respuesta = (HttpWebResponse) solicitud.GetResponse();
		Stream stream = respuesta.GetResponseStream ();
		
		StreamReader lector = newStreamReader(stream);
		string web = lector.ReadToEnd();
		lector.Close();
		
		return web;
	}
	
	
	catch (Exception w)
	{
		Console.WriteLine("Error al efectuar la conexion:");
		Console.WriteLine(w.ToString());
		string web = "";
		web = "\t<html>\n\t\t<body>\t<h1>Error en la conexion</h1>\t</body>\n\t</html>";
		
		return web;
	}
}