• http协议C#获取网页源代码


    通过http协议C#获取网页源代码
    方法一:

    using System.Text;
    using System.Net;
    private string getHtml(string url)
    {
    WebClient myWebClient
    = new WebClient();
    byte[] myDataBuffer = myWebClient.DownloadData (url);
    return Encoding.Default.GetString(myDataBuffer);
    }

    方法二:

    public string getHttp(string HttpUrl,string RefererUrl)
    {
    string html = "";
    try
    {
    MSXML2.XMLHTTP Http
    = new MSXML2.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
    {

    }
    return html;
    }





    public bool getweb(string strURL,out string buf)
    {
    buf
    ="";
    try
    {
    //Uri url=new Uri(strURL,false);
    HttpWebRequest request;
    request
    = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method
    ="POST"; //Post请求方式
    request.ContentType="text/html;charset=gb2312"; //内容类型
    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码
    byte[] payload;
    payload
    = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
    request.ContentLength = payload.Length; //设置请求的ContentLength
    Stream writer = request.GetRequestStream(); //获得请求流
    writer.Write(payload,0,payload.Length); //将请求参数写入流
    writer.Close(); //关闭请求流
    HttpWebResponse response;
    response
    = (HttpWebResponse)request.GetResponse(); //获得响应流
    Stream s;
    s
    = response.GetResponseStream();
    StreamReader objReader
    = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
    string HTML = "";
    string sLine ="";
    int i = 0;
    while (sLine!=null)
    {
    i
    ++;
    sLine
    = objReader.ReadLine();
    if (sLine!=null)
    HTML
    += sLine;
    }
    //HTML = HTML.Replace("&lt;","<");
    //HTML = HTML.Replace("&gt;",">");
    buf=HTML;
    return true;
    }
    catch (Exception x)
    {
    buf
    =x.Message.ToString();
    return false;
    }
    }

    带Cookie:
    CookieContainer cc
    = new CookieContainer();
    public bool getweb(string strURL,out string buf)
    {
    buf
    ="";
    try
    {
    HttpWebRequest request;
    request
    = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method
    ="POST"; //Post请求方式
    request.ContentType="text/html;charset=gb2312"; //内容类型
    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码
    byte[] payload;
    payload
    = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
    request.ContentLength = payload.Length; //设置请求的ContentLength
    Stream writer = request.GetRequestStream(); //获得请求流
    writer.Write(payload,0,payload.Length); //将请求参数写入流
    writer.Close(); //关闭请求流
    HttpWebResponse response;
    response
    = (HttpWebResponse)request.GetResponse(); //获得响应流
    Stream s;
    s
    = response.GetResponseStream();
    StreamReader objReader
    = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
    string HTML = "";
    string sLine ="";
    int i = 0;
    while (sLine!=null)
    {
    i
    ++;
    sLine
    = objReader.ReadLine();
    if (sLine!=null)
    HTML
    += sLine;
    }

    buf
    =HTML;
    return true;
    }
    catch (Exception x)
    {
    buf
    =x.Message.ToString();
    return false;
    }
    }
    public bool getweb(string strURL,out string buf,string postData)
    {
    buf
    ="";
    try
    {

    ASCIIEncoding encoding
    = new ASCIIEncoding();
    byte[] data = encoding.GetBytes(postData);
    HttpWebRequest request
    = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method
    = "POST";
    request.ContentType
    = "application/x-www-form-urlencoded";
    request.ContentLength
    = data.Length;
    Stream newStream
    = request.GetRequestStream();
    newStream.Write(data,
    0, data.Length);
    newStream.Close();

    request.CookieContainer
    = cc;

    HttpWebResponse response
    = (HttpWebResponse)request.GetResponse();
    cc.Add(response.Cookies);
    Stream stream
    = response.GetResponseStream();
    string sHtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
    buf
    =sHtml;
    return true;
    }
    catch (Exception x)
    {
    buf
    =x.Message.ToString();
    return false;
    }
    }

    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;
    }
  • 相关阅读:
    Axure RP使用攻略--动态面板滑动效果(10)
    Axure RP使用攻略--带遮罩层的弹出框(9)
    Axure RP使用攻略--动态面板的用途(8)
    Axure RP使用攻略--入门级(七)之axure元件使用思路的补充
    Axure RP使用攻略--入门级(六)关于Axure rp触发事件中IF和ELSE IF的使用说明
    Axure RP使用攻略--入门级(五)系统函数与变量
    Axure RP使用攻略--入门级(四)条件生成器
    Axure RP使用攻略--入门级(三)元件的触发事件
    Altium Designer 14安装破解
    小米手环暴力拆解
  • 原文地址:https://www.cnblogs.com/linzheng/p/1944920.html
Copyright © 2020-2023  润新知