在获取post流时,这句代码就把封包传送了 requst.GetRequestStream();.
执行这句的时候就没有发送封包 HttpWebResponse se = requst.GetResponse() as HttpWebResponse;
执行这句的时候就没有发送封包 HttpWebResponse se = requst.GetResponse() as HttpWebResponse;
string url = "http://w.qzone.qq.com/cgi-bin/likes/internal_dolike_app?g_tk=" + _key;
HttpWebRequest requst = WebRequest.Create(url) as HttpWebRequest;
requst.Method = "POST";
requst.Host = "w.qzone.qq.com";
requst.AutomaticDecompression = DecompressionMethods.GZip;
requst.KeepAlive = true;
requst.Headers[HttpRequestHeader.AcceptLanguage] = "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3";
requst.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
requst.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0";
requst.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
requst.ContentType = "application/x-www-form-urlencoded";
//参数设置
string shuoshuoid = "46c54c5998411257d4040200";
byte[] btbyte = Encoding.UTF8.GetBytes("qzreferrer=http%3A%2F%2Fuser.qzone.qq.com%2F" + _qq_fuwu + "%2F"
+ "&opuin=" + _qq_fuwu
+ "&unikey=http:%3A%2F%2Fuser.qzone.qq.com%2F" + _qq_kehu + "%2Fmood%2F" + shuoshuoid
+ "&curkey=http:%3A%2F%2Fuser.qzone.qq.com%2F" + _qq_kehu + "%2Fmood%2F" + shuoshuoid
+ "&from=1"
+ "&appid=311"
+ "&typeid=0"
+ "&abstime=1460869123"
+ "&fid=" + shuoshuoid
+ "&active=0"
+ "&fupdate=1");
requst.ContentLength = btbyte.Length;
//获取流
//*****************主要问题出在这里,获取参数流时停顿了下,然后用封包拦截器,看了下在这里他就已经上传封包了*******
Stream s = requst.GetRequestStream();
s.Write(btbyte, 0, btbyte.Length);
s.Close();
try
{
HttpWebResponse se = requst.GetResponse() as HttpWebResponse;//然后这一句就没有任何停顿的执行过去了
StreamReader streamReader;
string responseContent;
streamReader = new StreamReader(se.GetResponseStream(), Encoding.UTF8);
responseContent = streamReader.ReadToEnd();
Encoding.UTF8.GetString(Encoding.Default.GetBytes(responseContent));
}
catch (Exception)
{
}
解决方案
40
1、HttpWebResponse用完要Close以释放流和连接
2、没停顿过去了,是继续向下执行代码,还是进入catch了?
2、没停顿过去了,是继续向下执行代码,还是进入catch了?
20
requst.GetResponse()是获取服务器应答,用streamReader.ReadToEnd()读取不到数据,说明服务器没有实质性应答咯
20
已经有了结果, 再看一下也不需要重新获取啊, LZ可以重新发起另一个请求.
20
要读取流的内容 是不是要把流的指针调回到开头位置呢