zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#几种获取网页源文件代码的实例

c#实例网页代码 获取 几种 源文件
2023-06-13 09:14:49 时间
方法一:
复制代码代码如下:

usingSystem.Text;
usingSystem.Net;
privatestringgetHtml(stringurl)
{
WebClientmyWebClient=newWebClient();
byte[]myDataBuffer=myWebClient.DownloadData(url);
returnEncoding.Default.GetString(myDataBuffer);
}

方法二:
复制代码代码如下:

publicstringgetHttp(stringHttpUrl,stringRefererUrl)
{
stringhtml="";
try
{
MSXML2.XMLHTTPHttp=newMSXML2.XMLHTTPClass();
xmlhttp.open("GET",Url,false,null,null);
Http.open("GET",HttpUrl,false,null,null);
Http.setRequestHeader("Referer",RefererUrl);
//Http.setRequestHeader("Referer",RefererUrl);
Http.setRequestHeader("Content-Type","text/html;charset=gb2312");
Http.send("");
html=Encoding.Default.GetString((byte[])Http.responseBody);
Http=null;
}
catch
{
}
returnhtml;
}
publicboolgetweb(stringstrURL,outstringbuf)
 {
  buf="";
  try
  {
   //Uriurl=newUri(strURL,false);
   HttpWebRequestrequest;
   request=(HttpWebRequest)WebRequest.Create(strURL);
   request.Method="POST";//Post请求方式
   request.ContentType="text/html;charset=gb2312";//内容类型
   stringparaUrlCoded=System.Web.HttpUtility.UrlEncode("");//参数经过URL编码
   byte[]payload;
   payload=System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded);//将URL编码后的字符串转化为字节
   request.ContentLength=payload.Length;//设置请求的ContentLength
   Streamwriter=request.GetRequestStream();//获得请求流
   writer.Write(payload,0,payload.Length);//将请求参数写入流
   writer.Close();//关闭请求流
   HttpWebResponseresponse;
   response=(HttpWebResponse)request.GetResponse();//获得响应流
   Streams;
   s=response.GetResponseStream();
   StreamReaderobjReader=newStreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
   stringHTML="";
   stringsLine="";
   inti=0;
   while(sLine!=null)
   {
    i++;
    sLine=objReader.ReadLine();
    if(sLine!=null)
     HTML+=sLine;
   }
   //HTML=HTML.Replace("<","<");
   //HTML=HTML.Replace(">",">");
   buf=HTML;
   returntrue;
  }
  catch(Exceptionx)
  {  
   buf=x.Message.ToString();
   returnfalse;   
  }
 }

带Cookie:
复制代码代码如下:
CookieContainercc=newCookieContainer();
publicboolgetweb(stringstrURL,outstringbuf)
 {
  buf="";
  try
  {
   HttpWebRequestrequest;
   request=(HttpWebRequest)WebRequest.Create(strURL);
   request.Method="POST";//Post请求方式
   request.ContentType="text/html;charset=gb2312";//内容类型
   stringparaUrlCoded=System.Web.HttpUtility.UrlEncode("");//参数经过URL编码
   byte[]payload;
   payload=System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded);//将URL编码后的字符串转化为字节
   request.ContentLength=payload.Length;//设置请求的ContentLength
   Streamwriter=request.GetRequestStream();//获得请求流
   writer.Write(payload,0,payload.Length);//将请求参数写入流
   writer.Close();//关闭请求流
   HttpWebResponseresponse;
   response=(HttpWebResponse)request.GetResponse();//获得响应流
   Streams;
   s=response.GetResponseStream();
   StreamReaderobjReader=newStreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
   stringHTML="";
   stringsLine="";
   inti=0;
   while(sLine!=null)
   {
    i++;
    sLine=objReader.ReadLine();
    if(sLine!=null)
     HTML+=sLine;
   }
   buf=HTML;
   returntrue;
  }
  catch(Exceptionx)
  {  
   buf=x.Message.ToString();
   returnfalse;   
  }
 }
 publicboolgetweb(stringstrURL,outstringbuf,stringpostData)
 {
  buf="";
  try
  {  
   ASCIIEncodingencoding=newASCIIEncoding();
   byte[]data=encoding.GetBytes(postData);
   HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(strURL);
   request.Method="POST";
   request.ContentType="application/x-www-form-urlencoded";
   request.ContentLength=data.Length;
   StreamnewStream=request.GetRequestStream();
   newStream.Write(data,0,data.Length);
   newStream.Close();
   request.CookieContainer=cc;
   HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
   cc.Add(response.Cookies);
   Streamstream=response.GetResponseStream();
   stringsHtml=newStreamReader(stream,System.Text.Encoding.Default).ReadToEnd();
   buf=sHtml;
   returntrue;
  }
  catch(Exceptionx)
  {  
   buf=x.Message.ToString();
   returnfalse;   
  }
 }
private  string  getWebresourceFile1(string  url)
   {
WebClient  myWebClient  =  new  WebClient();   
byte[]  myDataBuffer  =  myWebClient.DownloadData(url);
string  SourceCode  =  Encoding.Default.GetString(myDataBuffer);
saveSourceCode(SourceCode);
                 return  SourceCode;
     }

方法2
复制代码代码如下:
private  string  getWebresourceFile2(string  url)
   {
HttpWebRequest  request=(HttpWebRequest)WebRequest.Create(url); 
HttpWebResponse  response=(HttpWebResponse)request.GetResponse(); 
                 request.Method  =  "GET";       
Stream  receiveStream=response.GetResponseStream();
StreamReader  readStream=new  StreamReader(receiveStream,Encoding.Default);
string  SourceCode=readStream.ReadToEnd();   
saveSourceCode(SourceCode);
response.Close();     
readStream.Close();
return  SourceCode;
     }

方法3
复制代码代码如下:
private  string  getWebresourceFile3(string  url)
     {
WebClient  wc  =  new  WebClient();
wc.Credentials  =  CredentialCache.DefaultCredentials;
Byte[]  pageData  =  wc.DownloadData(url);
string  SourceCode  =  Encoding.Default.GetString(pageData);
saveSourceCode(SourceCode);
wc.Dispose(); 
return  SourceCode;
     }

方法4
复制代码代码如下:
private  string  getWebresourceFile4(string  url)
   {
WebClient  wc  =  new  WebClient();
wc.Credentials  =  CredentialCache.DefaultCredentials;
Stream  resStream  =  wc.OpenRead(url);
StreamReader  sr  =  new  StreamReader(resStream,System.Text.Encoding.Default);
string  SourceCode  =  sr.ReadToEnd();
saveSourceCode(SourceCode);
resStream.Close();
wc.Dispose(); 
return  SourceCode;
     }

方法5
复制代码代码如下:
private  string  getWebresourceFile5(string  url)
     {
WebRequest  request  =  WebRequest.Create(url);
WebResponse  response  =  request.GetResponse();
Stream  resStream  =  response.GetResponseStream(); 
StreamReader  sr  =  new  StreamReader(resStream,  System.Text.Encoding.Default);
string  SourceCode  =    sr.ReadToEnd();
saveSourceCode(SourceCode);
resStream.Close(); 
sr.Close();
return  SourceCode;
     }