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;
}
相关文章
- C# 中List与json字符串的相互转换「建议收藏」
- C#开源项目:SiMay远程控制管理系统
- C#简单快速的json组件fastJSON使用介绍
- c#多图片上传并生成缩略图的实例代码
- asp.netC#实现下载文件的六种方法实例
- C#实现写入与读出文本文件的实例代码
- C#实现协同过滤算法的实例代码
- 正则表达式语法规则及在Javascript和C#中的使用方法
- c#使用S22.Imap收剑灵激活码邮件代码示例(imap收邮件)
- c#获取字符串的字节数的方法
- C#执行Javascript代码的几种方法总结
- C#同步、异步远程下载文件实例
- C#预处理器指令的用法实例分析
- C#中按字符串截取长字符串实例
- C#匿名方法与Delegate类型转换错误分析
- C#窗体传值实例汇总
- C#转换日期类型实例
- C#枚举类型与结构类型实例解析
- 基于C#实现的端口扫描器实例代码
- C#使用晚绑定来实现压缩Access数据库的方法
- MongoDB入门教程之C#驱动操作实例
- C#中事件的继承实例分析