Je me demandais si vous pouviez m'aider avec un bug que j'ai. J'ai un gestionnaire HTTP que j'ai créé qui m'aide à gérer POSTing/GETing des données de sites Web. Cela a fonctionné très bien jusqu'à récemment lorsque j'essaie d'utiliser un mélange des deux. Première boucle tout fonctionne, sur la deuxième boucle, il se bloque sur HttpWebRequest.GetRequestStream(). J'ai lu partout sur le net et n'ai trouvé aucune vraie solution. Voici les codeblocks pour l'extraction/réception:Est-ce que quelqu'un sait pourquoi je reçois un Timeout HttpWebRequest?
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();
}
}
Et le 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();
Quelqu'un peut-il voir des défauts à la raison pour laquelle mon code est suspendu? Tous les flux sont fermés, j'ai mis les connexions autorisées à plus de 100, je ne comprends pas pourquoi cela se casse.
Avez-vous essayé d'utiliser quelque chose comme Wireshark pour voir ce que les données sont effectivement envoyées? – Foole
Quand vous dites que le code fonctionne la première fois mais s'arrête sur la seconde, quelles méthodes http utilisez-vous lors des requêtes respectives? –
Le code se bloque sur un poste, GET semblent fonctionner correctement. Lorsque je cours le code via un proxy burp cela fonctionne bien pour une raison quelconque? Peut-être que le proxy répare certains de mes en-têtes parce que je ne comprends pas comment cela devrait faire la différence. –