Hace unos días, hubo una solicitud para obtener información de un determinado sitio web, pero el sitio web requiere acceso posterior. Ahora aquí hay dos métodos que se encuentran en Google
usando System.Net
cadena estática WebClinetPost(string url, string postData, string encodeType; ,fuera cadena errar)
{
cadena uriString = URL;
byte[] byteArray;
byte[] respuestaArray;
//postData = "checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22";
Codificación codificación = Codificación.GetEncoding(encodeType);
intentar
{
WebClient miWebClient = nuevo WebClient();
WebHeaderCollection miWebHeaderCollection;
myWebClient.Headers.Add("Tipo de contenido","aplicación/x-www-form-urlencoded");
//myWebClient.Headers.Add("Referer"," http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx ");
//myWebClient.Headers.Add("Aceptar-Idioma","zh-cn");
myWebHeaderCollection = myWebClient.Headers;
byteArray = codificación.GetBytes(postData);
respuestaArray = myWebClient.UploadData(uriString,"POST",byteArray
err=string.Empty;
devolver codificación.GetString(responseArray);
}
captura (Excepción ex)
{
err=ex.Mensaje;
cadena de retorno. Vacío;
}
}
cadena estática pública HttpWebResponsePost (URL de cadena, postData de cadena, tipo de codificación de cadena, error de cadena de salida)
{
Stream outstream = null;
Stream instream=
null;
StreamReader
sr = null;
respuesta
HttpWebRequest = null
; codificación.GetBytes(
postData);
request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect
= request.Method = "POST"
request.ContentType = "aplicación/x-www- form-urlencoded";
request.ContentLength = data.Length;
outstream = request.GetRequestStream();
outstream.Write(data,0,data.Length);
outstream.Close();
respuesta = request.GetResponse() como HttpWebResponse;
corriente = respuesta.GetResponseStream();
sr = nuevo StreamReader (instream, codificación);
contenido de cadena = sr.ReadToEnd();
err = cadena.Empty;
devolver contenido;
}
captura (Excepción ex)
{
err = ex.Mensaje;
devolver cadena.Vacío
;
}
Código de llamada:
cadena url=" http://xxxxxx/xxxxxxxx/scrrm00542.jsp ";
cadena postData="proj_id=600197&theSubmit=600197";
cadena codificarType="utf-8";
cadena err="";
//string content=HttpWebResponsePost(url,postData,encodeType,out err);
string content=WebClinetPost(url,postData,encodeType,out err
Además, adjunte el código de implementación de JavaScript:
función ObtenerDatos()
{
var postData = "proj_id=600197&theSubmit=600197";
var http = nuevo GetXMLHTTPRequest();
http.open('POST', 'http://xxxxxxxxxx/xxxxxx/scrrm00542.jsp', falso);
http.setRequestHeader("Tipo de contenido", "aplicación/x-www-form-urlencoded");
http.enviar(postData);
devolver http.responseText;
}
función GetXMLHTTPRequest()
{
var progID = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
para (var i = 0; i < progIDs.length; ++i)
{
var progID = progIDs[i];
intentar
{
var x = nuevo ActiveXObject(progID);
devolver x;
}
atrapar (e)
{}
}
}
http://www.cnblogs.com/lwyaster/archive/2007/01/09/615815.html