欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c# HttpWebRequest通過(guò)代理服務(wù)器抓取網(wǎng)頁(yè)內(nèi)容應(yīng)用介紹

 更新時(shí)間:2012年11月30日 11:31:48   作者:  
在C#項(xiàng)目開(kāi)發(fā)過(guò)程中可能會(huì)有些特殊的需求比如:用HttpWebRequest通過(guò)代理服務(wù)器驗(yàn)證后抓取網(wǎng)頁(yè)內(nèi)容,要想實(shí)現(xiàn)此方法并不容易,本文整理了一下,有需求的朋友可以參考下
內(nèi)網(wǎng)用戶或代理上網(wǎng)的用戶使用
復(fù)制代碼 代碼如下:

using System.IO;
using System.Net;
public string get_html()
{
string urlStr = "http://www.domain.com"; //設(shè)定要獲取的地址
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr); //建立HttpWebRequest對(duì)象
hwr.Timeout = 60000; //定義服務(wù)器超時(shí)時(shí)間
WebProxy proxy = new WebProxy(); //定義一個(gè)網(wǎng)關(guān)對(duì)象
proxy.Address = new Uri("http://proxy.domain.com:3128"); //網(wǎng)關(guān)服務(wù)器:端口
proxy.Credentials = new NetworkCredential("f3210316", "6978233"); //用戶名,密碼
hwr.UseDefaultCredentials = true; //啟用網(wǎng)關(guān)認(rèn)証
hwr.Proxy = proxy; //設(shè)置網(wǎng)關(guān)
try
{
HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse(); //取得回應(yīng)
}
catch
{
MessageBox.Show("無(wú)法連接代理!");
return;
}
//判斷HTTP響應(yīng)狀態(tài)
if(hwrs.StatusCode != HttpStatusCode.OK)
{
MessageBox.Show("訪問(wèn)失??!");
hwrs.Close();
return;
}
else
{
Stream s = hwrs.GetResponseStream(); //得到回應(yīng)的流對(duì)象
StreamReader sr = new StreamReader(s, Encoding.UTF8); //以UTF-8編碼讀取流
StringBuilder content = new StringBuilder(); //
while (sr.Peek() != -1) //每次讀取一行,直到
{ //下一個(gè)字節(jié)沒(méi)有內(nèi)容
content.Append(sr.ReadLine()+""r"n"); //返回為止
} //
//return content.ToString() ;
}
//輸出所有的Header(當(dāng)然包括服務(wù)器輸出的Cookie)
//for(int ii=0;ii<hwrs.Headers.Count;ii++)
//{
//MessageBox.Show(hwrs.Headers.GetKey(ii)+":"+res.Headers[ii]);
//}
}

大家知道,用HttpWebRequest可以通過(guò)Http對(duì)網(wǎng)頁(yè)進(jìn)行抓取,但是如果是內(nèi)網(wǎng),而且是通過(guò)代理上網(wǎng)的用戶,如果直接進(jìn)行操作是行不通的。
那有沒(méi)有什么辦法呢?
當(dāng)然有,呵呵,見(jiàn)以下代碼:
復(fù)制代碼 代碼如下:

string urlStr = "http://www.domain.com"; //設(shè)定要獲取的地址
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr); //建立HttpWebRequest對(duì)象
hwr.Timeout = 60000; //定義服務(wù)器超時(shí)時(shí)間
WebProxy proxy = new WebProxy(); //定義一個(gè)網(wǎng)關(guān)對(duì)象
proxy.Address = new Uri("http://proxy.domain.com:3128"); //網(wǎng)關(guān)服務(wù)器:端口
proxy.Credentials = new NetworkCredential("f3210316", "6978233"); //用戶名,密碼
hwr.UseDefaultCredentials = true; //啟用網(wǎng)關(guān)認(rèn)証
hwr.Proxy = proxy; //設(shè)置網(wǎng)關(guān)
HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse(); //取得回應(yīng)
Stream s = hwrs.GetResponseStream(); //得到回應(yīng)的流對(duì)象
StreamReader sr = new StreamReader(s, Encoding.UTF8); //以UTF-8編碼讀取流
StringBuilder content = new StringBuilder(); //
while (sr.Peek() != -1) //每次讀取一行,直到
{ //下一個(gè)字節(jié)沒(méi)有內(nèi)容
content.Append(sr.ReadLine()+""r"n"); //返回為止
} //
return content.ToString() ; //返回得到的字符串

相關(guān)文章

  • C#使用opencv截取旋轉(zhuǎn)矩形區(qū)域圖像的實(shí)現(xiàn)示例

    C#使用opencv截取旋轉(zhuǎn)矩形區(qū)域圖像的實(shí)現(xiàn)示例

    這篇文章主要介紹了C#使用opencv截取旋轉(zhuǎn)矩形區(qū)域圖像,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C#中通過(guò)使用Connection類來(lái)實(shí)現(xiàn)打開(kāi)/關(guān)閉數(shù)據(jù)庫(kù)的代碼實(shí)例

    C#中通過(guò)使用Connection類來(lái)實(shí)現(xiàn)打開(kāi)/關(guān)閉數(shù)據(jù)庫(kù)的代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于C#中通過(guò)使用Connection類來(lái)實(shí)現(xiàn)打開(kāi)/關(guān)閉數(shù)據(jù)庫(kù)的代碼實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • C#自定義字符串壓縮和解壓縮的方法

    C#自定義字符串壓縮和解壓縮的方法

    這篇文章主要介紹了C#自定義字符串壓縮和解壓縮的方法,通過(guò)自定義C#字符串操作類實(shí)現(xiàn)對(duì)字符串的壓縮與解壓的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 利用C#編寫(xiě)Linux守護(hù)進(jìn)程實(shí)例代碼

    利用C#編寫(xiě)Linux守護(hù)進(jìn)程實(shí)例代碼

    如今的編程是一場(chǎng)程序員和上帝的競(jìng)賽,程序員要開(kāi)發(fā)出更大更好、傻瓜都會(huì)用到軟件,下面這篇文章主要給大家介紹了關(guān)于利用C#編寫(xiě)Linux守護(hù)進(jìn)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-01-01
  • C# Winform實(shí)現(xiàn)截圖工具的示例代碼

    C# Winform實(shí)現(xiàn)截圖工具的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用C# Winform制作一個(gè)簡(jiǎn)單的截圖工具,從而實(shí)現(xiàn)截圖功能,文中的示例代碼講解詳細(xì),有需要的可以參考下
    2024-02-02
  • Unity之Luaframework框架lua調(diào)用C#方法

    Unity之Luaframework框架lua調(diào)用C#方法

    這篇文章主要介紹了Unity之Luaframework框架lua調(diào)用C#方法,在這里需要寫(xiě)一個(gè)C#腳本,腳本里寫(xiě)方法需要在lua中調(diào)用,具體實(shí)例代碼參考下本文吧
    2021-09-09
  • C#使用加邊法計(jì)算行列式的值

    C#使用加邊法計(jì)算行列式的值

    這篇文章主要介紹了C#使用加邊法計(jì)算行列式的值,實(shí)例分析了C#加邊法計(jì)算行列式的原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C# 顯示、隱藏窗口對(duì)應(yīng)的任務(wù)欄

    C# 顯示、隱藏窗口對(duì)應(yīng)的任務(wù)欄

    WPF中全屏窗口,會(huì)自動(dòng)隱藏任務(wù)欄,那非全屏窗口如何隱藏任務(wù)欄?甚至有沒(méi)有一種場(chǎng)景,隱藏任務(wù)后自定義一套系統(tǒng)任務(wù)欄來(lái)顯示?這篇文章主要介紹了C# 顯示、隱藏窗口對(duì)應(yīng)的任務(wù)欄,需要的朋友可以參考下
    2021-10-10
  • 基于C# MBG 擴(kuò)展方法類庫(kù)的使用詳解

    基于C# MBG 擴(kuò)展方法類庫(kù)的使用詳解

    本篇文章對(duì)C# MBG 擴(kuò)展方法類庫(kù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 一文掌握C# ListView控件的用法和示例代碼

    一文掌握C# ListView控件的用法和示例代碼

    ListView控件提供了豐富的屬性和事件,可以用于實(shí)現(xiàn)各種各樣的表格視圖,包括帶有單元格編輯、排序和分組等功能,本文介紹了一些常見(jiàn)的?ListView?控件的用法和示例代碼,感興趣的朋友一起看看吧
    2024-02-02

最新評(píng)論