调用GetResponse()时超时异常

时间:2011-04-20 01:29:34

标签: c# webrequest getresponse

我创建了一个WebRequest来将一些HTML内容发布到另一个Web服务器。当我使用普通文本内容时,它可以正常工作,但是当我发布HTML内容时,我在调用GetResponse()时会出现超时错误。

WebResponse response = request.GetResponse()

我怎样才能找出问题所在? 我尝试为WebException添加错误处理程序,但我无法捕获异常。

请求代码:

byte[] byteArray = Encoding.UTF8.GetBytes(sPostData);

// Create a request using a URL that can receive a post. 
WebRequest request = WebRequest.Create(httpUri);
// Set the 'Timeout' property in Milliseconds.
//request.Timeout = 20000;
// Set the ContentType property of the WebRequest.
request.ContentType = contentType;
// Set the Method property of the request to POST.
request.Method = postMethod;
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
using (Stream PostStream = request.GetRequestStream())
{
    PostStream.Write(byteArray, 0, byteArray.Length);
}
// Get the response.
using (WebResponse response = request.GetResponse())
{
    // Get the stream containing content returned by the server.
    using (Stream responseStream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(responseStream))
        {
            string responseFromServer = reader.ReadToEnd();

            result = responseFromServer;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您应该使用Fiddler或其他等效应用程序查看网络流量。这可能会显示服务器是否正在响应,或者可能是响应较晚。

您还应该查看服务器日志或Windows事件日志 - 可能服务器不喜欢发送HTML,并且正在记录错误。在这种情况下,它可能只是决定你试图破解它,它可能决定不回答你。