日期:2014-05-17  浏览次数:20821 次

求大神,关于HttpWebRequest接收不完数据的问题!
string reponse
byte[] data = this.encoder.GetBytes(request);
HttpWebRequest http = WebRequest.Create(url) as HttpWebRequest;
http.Timeout = 2000;
http.ContentType = "application/soap+xml; charset=utf-8";
http.ContentLength = data.Length;
http.Method = "POST";

using (Stream writer = http.GetRequestStream()) {
    writer.Write(data, 0, data.Length);
}

using (WebResponse resp = http.GetResponse()) {
    using (StreamReader reader = new StreamReader(resp.GetResponseStream(), this.encoder, false, (int)resp.ContentLength)) {
        response = reader.ReadToEnd();
    }
}

这个运行完以后,response只获取到一部分数据,而有些地址能获取到完整的数据,谁遇到过这种情况?猜测是http的版本问题,会是吗?
HttpWebRequest Response ReadToEnd 一部分

------解决方案--------------------
可能是post的内容不正确,所有返回的数据就只有部分了
------解决方案--------------------
是不是网站响应的比较慢?Timeout设置长一点看看。
------解决方案--------------------
using (StreamReader streamReader = new StreamReader(getStream, encoding))
                {
                    html = streamReader.ReadToEnd();
                }

试试?
------解决方案--------------------
有阻塞 什么的么-0-可以先保留一部分之后排队的取完么
------解决方案--------------------
你看下Response.Headers[System.Net.HttpRequestHeader.ContentEncoding]和Response.Headers[System.Net.HttpRequestHeader.ContentType]
是不是跟你的encoder一样