a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 編程 > C# > 正文

C#中使用Socket獲取網(wǎng)頁(yè)源代碼的代碼

2020-01-24 03:44:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
WebToolkit類:
復(fù)制代碼 代碼如下:

using System;
using System.Net.Sockets;
using System.Text;

namespace ConsoleApplication1
{
class WebToolkit
{
/// <summary>
/// Url結(jié)構(gòu)
/// </summary>
struct UrlInfo
{
public string Host;
public int Port;
public string File;
public string Body;
}

/// <summary>
/// 解析URL
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private static UrlInfo ParseURL(string url)
{
UrlInfo urlInfo = new UrlInfo();
string[] strTemp = null;
urlInfo.Host = "";
urlInfo.Port = 80;
urlInfo.File = "/";
urlInfo.Body = "";
int intIndex = url.ToLower().IndexOf("http://");
if (intIndex != -1)
{
url = url.Substring(7);
intIndex = url.IndexOf("/");
if (intIndex == -1)
{
urlInfo.Host = url;
}
else
{
urlInfo.Host = url.Substring(0, intIndex);
url = url.Substring(intIndex);
intIndex = urlInfo.Host.IndexOf(":");
if (intIndex != -1)
{
strTemp = urlInfo.Host.Split(':');
urlInfo.Host = strTemp[0];
int.TryParse(strTemp[1], out urlInfo.Port);
}
intIndex = url.IndexOf("?");
if (intIndex == -1)
{
urlInfo.File = url;
}
else
{
strTemp = url.Split('?');
urlInfo.File = strTemp[0];
urlInfo.Body = strTemp[1];
}
}
}
return urlInfo;
}

/// <summary>
/// 發(fā)出請(qǐng)求并獲取響應(yīng)
/// </summary>
/// <param name="host"></param>
/// <param name="port"></param>
/// <param name="body"></param>
/// <param name="encode"></param>
/// <returns></returns>
private static string GetResponse(string host, int port, string body, Encoding encode)
{
string strResult = string.Empty;
byte[] bteSend = Encoding.ASCII.GetBytes(body);
byte[] bteReceive = new byte[1024];
int intLen = 0;

using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
try
{
socket.Connect(host, port);
if (socket.Connected)
{
socket.Send(bteSend, bteSend.Length, 0);
while ((intLen = socket.Receive(bteReceive, bteReceive.Length, 0)) > 0)
{
strResult += encode.GetString(bteReceive, 0, intLen);
}
}
socket.Close();
}
catch { }
}

return strResult;
}

/// <summary>
/// GET請(qǐng)求
/// </summary>
/// <param name="url"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string Get(string url, Encoding encode)
{
UrlInfo urlInfo = ParseURL(url);
string strRequest = string.Format("GET {0}?{1} HTTP/1.1/r/nHost:{2}:{3}/r/nConnection:Close/r/n/r/n", urlInfo.File, urlInfo.Body, urlInfo.Host, urlInfo.Port.ToString());
return GetResponse(urlInfo.Host, urlInfo.Port, strRequest, encode);
}

/// <summary>
/// POST請(qǐng)求
/// </summary>
/// <param name="url"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string Post(string url, Encoding encode)
{
UrlInfo urlInfo = ParseURL(url);
string strRequest = string.Format("POST {0} HTTP/1.1/r/nHost:{1}:{2}/r/nContent-Length:{3}/r/nContent-Type:application/x-www-form-urlencoded/r/nConnection:Close/r/n/r/n{4}", urlInfo.File, urlInfo.Host, urlInfo.Port.ToString(), urlInfo.Body.Length, urlInfo.Body);
return GetResponse(urlInfo.Host, urlInfo.Port, strRequest, encode);
}
}
}

調(diào)用示例:
復(fù)制代碼 代碼如下:

using System;
using System.Text;

namespace ConsoleApplication1
{
//調(diào)用示例
class Program
{
public static void Main(string[] args)
{
Console.WriteLine(WebToolkit.Get("http://www.5lwq4hdr.cn/t.asp?keyword=vbscript", Encoding.Default));
Console.ReadKey();
}
}
}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩三级 | 亚洲一区二区三区福利 | 九色91在线 | 婷婷综合网 | 精品久久香蕉国产线看观看亚洲 | 亚洲欧美91| 黄色污网站 | 一区二区三区在线 | 国产精品嫩草55av | 青青草原国产在线观看 | 亚洲午夜精品一区二区三区他趣 | 亚洲视频在线一区二区三区 | 99国产精品视频免费观看一公开 | 欧美高清在线一区 | 人人超碰免费 | 天天操操 | 日本黄色片免费 | 五月婷婷在线视频观看 | 精品国产乱码久久久久久闺蜜 | 久久久精品影院 | 桃色视频国产 | 香蕉久久一区二区不卡无毒影院 | 精品无码久久久久久国产 | 精品日韩欧美一区二区在线播放 | 欧美日韩久久精品 | 久草视| 国产精品久久久999 日本在线免费观看 | 欧美xxxxxxxx| 九九热视频在线 | 男人的天堂亚洲 | 91视频88av| 99热在线精品免费 | 国产亚洲欧美一区二区三区 | 日韩一级电影在线 | 四虎影视最新网址 | 一区二区中文字幕在线观看 | 中文字幕亚洲一区二区三区 | 国产精品久久久久久久久动漫 | 国产婷婷精品av在线 | 一区二区欧美在线 | 黄久久久 |