public bool DownLoad( string URL, string Filename ) {
try {
System.Net.HttpWebRequest Myrq = ( System.Net.HttpWebRequest )System.Net.HttpWebRequest.Create( URL ); //从URL地址得到一个WEB请求
System.Net.HttpWebResponse myrp = ( System.Net.HttpWebResponse )Myrq.GetResponse(); //从WEB请求得到WEB响应
long totalBytes = myrp.ContentLength; //从WEB响应得到总字节数 System.IO.Stream st = myrp.GetResponseStream(); //从WEB请求创建流(读)
System.IO.Stream so = new System.IO.FileStream( Filename, System.IO.FileMode.Create ); //创建文件流(写)
long totalDownloadedByte = 0; //下载文件大小
byte[] by = new byte[ 1024 ];
int osize = st.Read( by, 0, ( int )by.Length ); //读流
while ( osize > 0 ) {
totalDownloadedByte = osize + totalDownloadedByte; //更新文件大小
so.Write( by, 0, osize ); //写流
osize = st.Read( by, 0, ( int )by.Length ); //读流
}
so.Close(); //关闭流
st.Close(); //关闭流
return true;
} catch {
return false;
}
}上面是我的下载方法每次下载网盘资源的外链都出错, 但迅雷和QQ下载都能正确下载.
我该怎么办?
try {
System.Net.HttpWebRequest Myrq = ( System.Net.HttpWebRequest )System.Net.HttpWebRequest.Create( URL ); //从URL地址得到一个WEB请求
System.Net.HttpWebResponse myrp = ( System.Net.HttpWebResponse )Myrq.GetResponse(); //从WEB请求得到WEB响应
long totalBytes = myrp.ContentLength; //从WEB响应得到总字节数 System.IO.Stream st = myrp.GetResponseStream(); //从WEB请求创建流(读)
System.IO.Stream so = new System.IO.FileStream( Filename, System.IO.FileMode.Create ); //创建文件流(写)
long totalDownloadedByte = 0; //下载文件大小
byte[] by = new byte[ 1024 ];
int osize = st.Read( by, 0, ( int )by.Length ); //读流
while ( osize > 0 ) {
totalDownloadedByte = osize + totalDownloadedByte; //更新文件大小
so.Write( by, 0, osize ); //写流
osize = st.Read( by, 0, ( int )by.Length ); //读流
}
so.Close(); //关闭流
st.Close(); //关闭流
return true;
} catch {
return false;
}
}上面是我的下载方法每次下载网盘资源的外链都出错, 但迅雷和QQ下载都能正确下载.
我该怎么办?
你用Fiddle2查一下来回的http流程