Tôi đã tự hỏi nếu bạn có thể giúp tôi với một lỗi tôi có. Tôi có một Trình quản lý HTTP mà tôi đã tạo để giúp tôi xử lý dữ liệu POSTING/GETing từ các trang web. Nó đã làm việc tốt cho đến gần đây khi tôi đang cố gắng sử dụng một hỗn hợp của cả hai. Vòng lặp đầu tiên tất cả mọi thứ hoạt động, trên vòng lặp thứ hai nó treo trên HttpWebRequest.GetRequestStream(). Tôi đã đọc trên mạng và không tìm thấy giải pháp thực sự nào. Dưới đây là những CodeBlocks cho quyến rũ/nhận:Có ai biết tại sao tôi nhận được một 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();
}
}
Và phản ứng:
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();
bất cứ ai có thể nhìn thấy bất kỳ sai sót tại sao mã của tôi được treo? Tất cả các luồng đang bị đóng, tôi đã thiết lập các kết nối được cho phép trên 100, tôi không hiểu tại sao điều này lại xảy ra.
Các bạn đã cố gắng sử dụng một cái gì đó giống như Wireshark để xem những gì dữ liệu được thực sự được gửi đi? – Foole
Khi bạn nói rằng mã hoạt động lần đầu tiên nhưng dừng lại ở lần thứ hai, bạn sử dụng phương pháp http nào trong các yêu cầu tương ứng? –
Mã treo trên một bài đăng, GET có vẻ hoạt động tốt. Khi tôi chạy mã thông qua proxy burp nó hoạt động tốt cho một số lý do? Có lẽ proxy đang sửa chữa một số tiêu đề của tôi bởi vì tôi không hiểu nó sẽ tạo nên sự khác biệt như thế nào. –