获取响应流 (ReadDone2) 时出错:接收失败 [英] Error getting response stream (ReadDone2): Receive Failure

查看:29
本文介绍了获取响应流 (ReadDone2) 时出错:接收失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮帮我.发送后查询后,我有 web 异常获取响应流(ReadDone2)时出错:接收失败".帮助摆脱这个错误.谢谢.

Help me please. After sending post query i have webexception "Error getting response stream (ReadDone2): Receive Failure". help get rid of this error. thanks.

一段代码

try
{
string queryContent = string.Format("login={0}&password={1}&mobileDeviceType={2}/",
login, sessionPassword, deviceType);
request = ConnectionHelper.GetHttpWebRequest(loginPageAddress, queryContent);

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())//after this line //occurs exception - "Error getting response stream (ReadDone2): Receive Failure"
{

ConnectionHelper.ParseSessionsIdFromCookie(response);

string location = response.Headers["Location"];
if (!string.IsNullOrEmpty(location))
{
string responseUri = Utils.GetUriWithoutQuery(response.ResponseUri.ToString());
string locationUri = Utils.CombineUri(responseUri, location);
result = this.DownloadXml(locationUri);
}
response.Close();
}
}
catch (Exception e)
{
errorCout++;
errorText = e.Message;
}

//方法 GetHttpWebRequest

//Methot GetHttpWebRequest

    public static HttpWebRequest GetHttpWebRequest(string uri, string queryContent)
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);            
        request.Proxy = new WebProxy(uri);
        request.UserAgent = Consts.userAgent;
        request.AutomaticDecompression = DecompressionMethods.GZip;
        request.AllowWriteStreamBuffering = true;
        request.AllowAutoRedirect = false;

        string sessionsId = GetSessionsIdForCookie(uri);
        if (!string.IsNullOrEmpty(sessionsId))
            request.Headers.Add(Consts.headerCookieName, sessionsId);

        if (queryContent != string.Empty)
        {
            request.ContentType = "application/x-www-form-urlencoded";
            request.Method = "POST";
            byte[] SomeBytes = Encoding.UTF8.GetBytes(queryContent);
            request.ContentLength = SomeBytes.Length;
            using (Stream newStream = request.GetRequestStream())
            {
                newStream.Write(SomeBytes, 0, SomeBytes.Length);
            }
        }
        else
        {
            request.Method = "GET";
        }

        return request;
    }

推荐答案

using (Stream newStream = request.GetRequestStream())
{
    newStream.Write(SomeBytes, 0, SomeBytes.Length);

    //try to add
    newStream.Close();
}

这篇关于获取响应流 (ReadDone2) 时出错:接收失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆