C# obtiene cookies a través del método de publicación HttpWebRequest
Proporcionándoles una nueva clase HttpRequest que he usado para asistencia en juegos comunitarios.
¿espacio de nombres?RainyManor.Common
{
público?clase?myHttpRequest
{
privado?CookieContainer?_cc?=?nuevo? CookieContainer();
público?myHttpRequest(CookieContainer?cc)
{
if?(cc!=?null)
_cc?=?cc;
}
¿público?CookieContainer?cookies
{
obtener?{?return?_cc;? }
}
¿privado?HttpWebRequest?GetRequest(cadena?uri,?cadena?método)
{
¿HttpWebRequest?request? =?(HttpWebRequest)WebRequest.Create(uri);
solicitud.Metodo?=?metodo;
solicitud.Accept?=?Resources.Accept;
request.UserAgent?=?Resources.UserAgent;
request.ContentType?=?Resources.ContentType;
request.KeepAlive?=?false;
request..ProtocolVersion?=?HttpVersion.Version10;
request.Timeout?=?20000;
return?request;
}
public?GetPageSource(string?url)
{
HttpWebRequest?request?=?GetRequest(url,?" get");
solicitud. CookieContainer?=?_cc;
return?GetStringFromRequest(request,?myEncoding.GB2312);
}
privado?string?GetStringFromRequest(HttpWebRequest?request, ?Codificación?encode)
{
intenta
{
Usar ?(HttpWebResponse)request.GetResponse())
{
Usar ?(Stream?stream?=?response.GetResponseStream())
{
Usar ?( StreamReader?reader?= ?new?StreamReader(stream,?encode))
{
return?string.Empty;
}
} p>
público?cadena?GetSourceByPost(cadena?url,?cadena?postD
ata)
{
prueba
{
byte[]?bytes?=?Encoding.ASCII.GetBytes(postData);
HttpWebRequest?request?=?GetRequest(url, ?" post");
request.CookieContainer?=?_cc;
Stream?sendStream?= ?request.GetRequestStream();
sendStream.Write(bytes,?0,?bytes.Length);
sendStream.Close();
retorno ?GetStringFromRequest(solicitud,?myEncoding.GB2312);
}
catch
{
return?GetSourceByPostAction(string?url, ?string?postData)
{
prueba
{
byte[]?bytes?GetBytes(postData);
HttpWebRequest?request?=?GetRequest(url, ?" post");
request.ContentType?=?" text/xml";
request.CookieContainer? =?_cc;
Stream?sendStream?=?request.GetRequestStream();
sendStream.Write(bytes,?0,?bytes.Length);
sendStream.Close();
return?GetStringFromRequest(request,?myEncoding.UTF8);
}
catch
{
regresar?"";
}
}
}
}
}
1.Recursos.Aceptar: imagen/gif, imagen/x-xbitmap, imagen/jpeg, imagen/pjpeg, aplicación/x-shockwave-flash, aplicación/vnd.ms-excel, application/vnd.ms-powerpoint、application/msword、application/x-ms-application、application/x-ms-xbap、application/xpsdocument、application/xaml xml、*/*
2. .Resources.UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2).
3.Resources.Content-Type: application/x-www-form-urlencoded4.