TootleCode

Code

Crear Servicios Web y consumirlos sin Referenciarlos — January 26, 2017

Crear Servicios Web y consumirlos sin Referenciarlos

Este proceso es factible cuando requerimos utilizar herramientas con un framework superior a 2.0.

Lo primero es crear un Servicio Web (Web Service) y crear un metodo que acepte httpGet en nuestro proyecto web con framework 3.5 o superior.

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public bool MetodoWeb
{
//Aqui va tu codigo
}

Se tiene que asegurar que exista el siguiente Nodo en el archivo Web.Config

 

Ahora si, dentro de nuestro codigo de Framework 2.0, en donde especificamos la ruta de nuestro Servicio Web, el nombre del metodo y los parametros que le vamos a enviar.

string wsRuta = string.Empty;
string wsServicio = string.Empty;
string wsMetodo = string.Empty;

wsRuta = “http:/localhost:8023”;
wsServicio = “ServicioWeb.asmx”;
wsMetodo = “MetodoWeb”;
string hola = string.Format(“{0}/{1}/{2}”, wsRuta, wsServicio, wsMetodo);
var request = (HttpWebRequest)WebRequest.Create(string.Format(“{0}/{1}/{2}”, wsRuta, wsServicio, wsMetodo));

StringBuilder sbs = new StringBuilder();
sbs.Append(string.Format(“{0}={1}”, “Parametro1”, “Valor1”));
sbs.Append(string.Format(“&{0}={1}”, “Paramtero2”, “Valor2”));
var data = Encoding.ASCII.GetBytes(sbs.ToString());

request.Method = “POST”;
request.ContentType = “application/x-www-form-urlencoded”;
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
try
{
var response = (HttpWebResponse)request.GetResponse();

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
catch (WebException wex)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(“ERROR:” + wex.Message + “. STATUS: ” + wex.Status.ToString());

if (wex.Status == WebExceptionStatus.ProtocolError)
{
var response = ((HttpWebResponse)wex.Response);
sb.AppendLine(string.Format(“Status Code : {0}”, response.StatusCode));
sb.AppendLine(string.Format(“Status Description : {0}”, response.StatusDescription));

try
{
StreamReader reader = new StreamReader(response.GetResponseStream());
sb.AppendLine(reader.ReadToEnd());
}
catch (WebException ex) { throw; }
}

throw new Exception(sb.ToString(), wex);
}

Cuando se detecta algun problema en el codigo, el sistema regresa por default un error 500, por lo cual se agrego el Catch de “WebException “, en donde se despliega de manera mas entendible el error y poder atacarlo mas efectivamente.

Con esto, no tuvimos que agregar la referencia web en nuestro proyecto y pudimos consumir el Web Service por un POST.

-MrDonPh0x

hqdefault

Advertisements
Quitar acentos C# .Net — January 18, 2017
Enable Legacy Support Mode VS2012 (Devexpress compatibility) — October 9, 2013
Installing ASP.Net Web Extensions on Framework 2.0 — November 7, 2012
Using Regular Expression Visual Stdio — March 12, 2012

Using Regular Expression Visual Stdio

Replace:
public string StrMetodoPago
{
get { return strMetodoPago; }
set { strMetodoPago = value; }
}
For this:
public string StrMetodoPago
{
get { return string.IsNullOrEmpty(strMetodoPago) ? string.Empty : strMetodoPago; }
set { strMetodoPago = value; }
}

Search Expression:
get.\{.[return]+.{[a-zA-Z0-9]+};.\}

Replace Expression:
get { return string.IsNullOrEmpty(\1) ? string.Empty : \1; }

Validar los RadioButtonList — November 10, 2011

Validar los RadioButtonList

Para validar un radiobuttonlist, solo es necesario revisar su propiedad selectedvalue, si se encuentra vacia, indica que el usuario no seleccionó nungunja de sus opciones. Por ejemplo:

if (rblActivo.SelectedValue == “”)
{
objUtils.mostrarAlerta(this, “Falta campo Activo”);
}
if (rblNacional.SelectedValue == “”)
{
objUtils.mostrarAlerta(this, “Falta campo Nal/Imp”);
}
if (rblFisica.SelectedValue == “”)
{
objUtils.mostrarAlerta(this, “Falta campo Fisica/Moral”);
}

Error al abirir un reporte en devexpress —

Error al abirir un reporte en devexpress

Si aparece el siguiente error al abrir un reporte elaborado en devexpress:
Error de resticciones deshabilitadas non-null foreign key en reporte

Esto pasa ya que en el dataset correspondiente al reporte (archivo .xsd) se genera un codigo en automático, como el siguiente:

xs:unique name="Constraint1" msdata:PrimaryKey="true"


Solo tienes que eliminar todo el nodo y funcionara correctamente. En caso de que no sea asi revisa la longitud de los campos y que niguno de ellos almacene valores nulos.

Tamaños de Papel de una Impresora —

Tamaños de Papel de una Impresora

Para determinar los tamaños de papel del que dispone una Impresora en .NET:

using System.Drawing;
using System.Drawing.Printing;

protected void Page_Load(object sender, EventArgs e){

PrintDocument myDoc = new PrintDocument();
myDoc.PrinterSettings.PrinterName = "BIXOLON";
foreach (PaperSize pz in myDoc.PrinterSettings.PaperSizes)
{
Response.Write(pz.PaperName);
}

}

Add all NameSpace from XMLDocument to XMLNameSpaceManager — August 25, 2011

Add all NameSpace from XMLDocument to XMLNameSpaceManager

System.Xml.XPath.XPathDocument objXPathDoc = new System.Xml.XPath.XPathDocument("OA.xml");
System.Xml.XPath.XPathNavigator objXPathNav = objXPathDoc.CreateNavigator();
XmlNamespaceManager nsMan = new XmlNamespaceManager(objXPathNav.NameTable);

foreach (System.Xml.XPath.XPathNavigator element in objXPathNav.Select("descendant::*"))
foreach (System.Collections.Generic.KeyValuePair kvp in element.GetNamespacesInScope(XmlNamespaceScope.Local))
nsMan.AddNamespace(kvp.Key, kvp.Value);
objXPathDoc = null;
objXPathNav = null;

Remove all selected item from ListBox — July 21, 2011