Me preguntaba si me pueden ayudar con un error que estoy teniendo. Tengo un Administrador de HTTP que he creado que me ayuda a manejar datos de POSTING/GET de sitios web. Ha funcionado bien hasta hace poco cuando trato de usar una mezcla de ambos. El primer bucle redondo funciona, en el segundo ciclo se cuelga en HttpWebRequest.GetRequestStream(). He leído en toda la red y no he encontrado una solución real. A continuación se presentan los bloques de código para el ir a buscar/recepción:¿Alguien sabe por qué recibo un HttpWebRequest Timeout?
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] buffer = encoding.GetBytes(_PostData);
_HttpWebRequest = (HttpWebRequest)WebRequest.Create(_FetchUrl);
_HttpWebRequest.Credentials = _Credentials;
_HttpWebRequest.Method = _RequestType.ToString();
_HttpWebRequest.ContentType = "application/x-www-form-urlencoded";
_HttpWebRequest.ContentLength = buffer.Length;
_HttpWebRequest.UserAgent = userAgent;
_HttpWebRequest.CookieContainer = _CookieContainer;
_HttpWebRequest.KeepAlive = false;
_HttpWebRequest.AllowAutoRedirect = _AllowAutoRedirect;
_HttpWebRequest.AutomaticDecompression = DecompressionMethods.GZip;
_HttpWebRequest.ServicePoint.Expect100Continue = false;
if (_RequestType.Equals(RequestTypes.POST))
{
// Write POST
Stream reqStream = _HttpWebRequest.GetRequestStream();
{
reqStream.Write(buffer, 0, buffer.Length);
reqStream.Flush();
reqStream.Close();
}
}
Y el Reponse:
HttpWebResponse httpWebResponse = (HttpWebResponse)_HttpWebRequest.GetResponse();
{
Stream responseStream = httpWebResponse.GetResponseStream();
{
if (_UseGzip)
{
if (httpWebResponse.ContentEncoding.ToLower().Contains("gzip"))
{
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
}
else
{
responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);
}
}
if (responseStream != null)
{
StreamReader streamReader = new StreamReader(responseStream);
{
try
{
_PageContent = streamReader.ReadToEnd();
}
finally
{
streamReader.Close();
responseStream.Close();
httpWebResponse.Close();
}
}
}
else
{
_PageContent = string.Empty;
}
}
}
_HttpWebRequest.Abort();
Puede alguien ver los defectos de por qué mi código está colgando? Todas las transmisiones se están cerrando, he establecido las conexiones permitidas a más de 100, no entiendo por qué esto se está rompiendo.
¿Ha intentado utilizar algo así como Wireshark para ver los datos que en realidad se está enviando? – Foole
Cuando dice que el código funciona la primera vez pero se detiene en el segundo, ¿qué métodos http usa durante las solicitudes respectivas? –
El código se cuelga en una publicación, GET parece estar funcionando bien. Cuando ejecuto el código a través de proxy burp funciona bien por alguna razón? Tal vez el proxy está reparando algunos de mis encabezados porque no entiendo cómo debería marcar la diferencia. –