国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

HttpWebRequest的常見錯誤使用TcpClient可避免

2024-07-09 22:47:12
字體:
來源:轉載
供稿:網友
有時使用HttpWebRequest對象會出現錯誤,總結有三種:
1、System.Net.WebException: 服務器提交了協議沖突. Section=ResponseStatusLine
2、System.Net.WebException: 基礎連接已經關閉: 連接被意外關閉。
3、System.Net.ProtocolViolationException: 無法發送具有此謂詞類型的內容正文。
使用TcpClient對象搞定:
代碼如下:
private string GetHTMLTCP(string URL)
{
string strHTML = "";//用來保存獲得的HTML代碼
TcpClient clientSocket = new TcpClient();
Uri URI = new Uri(URL);
clientSocket.Connect(URI.Host, URI.Port);
StringBuilder RequestHeaders = new StringBuilder();//用來保存HTML協議頭部信息
RequestHeaders.AppendFormat("{0} {1} HTTP/1.1/r/n", "GET", URI.PathAndQuery);
RequestHeaders.AppendFormat("Connection:close/r/n");
RequestHeaders.AppendFormat("Host:{0}/r/n", URI.Host);
RequestHeaders.AppendFormat("Accept:*/*/r/n");
RequestHeaders.AppendFormat("Accept-Language:zh-cn/r/n");
RequestHeaders.AppendFormat("User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)/r/n/r/n");
Encoding encoding = Encoding.Default;
byte[] request = encoding.GetBytes(RequestHeaders.ToString());
clientSocket.Client.Send(request);
//獲取要保存的網絡流
Stream readStream = clientSocket.GetStream();
StreamReader sr = new StreamReader(readStream, Encoding.Default);
strHTML = sr.ReadToEnd();
readStream.Close();
clientSocket.Close();
return strHTML;
}

使用 HttpWebRequest請求頁面
代碼如下:
///
/// 獲取html源碼
///
///
///
///
static string GetHTML(string url, string param)
{
try
{
Uri uri = new Uri(url);
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(uri);
myReq.Headers.Add("Accept-Encoding", "gzip,deflate");//sdch
byte[] byData = Encoding.Default.GetBytes(param);
myReq.Method = "post";
myReq.ContentLength = byData.Length;
Stream reqStrem = myReq.GetRequestStream();
reqStrem.Write(byData, 0, byData.Length);
reqStrem.Close();
HttpWebResponse result = (HttpWebResponse)myReq.GetResponse();
Stream recStream = result.GetResponseStream();
//如果是Gzip方式則需要解壓
recStream = new GZipStream(recStream, CompressionMode.Decompress);
StreamReader redStream = new StreamReader(recStream, System.Text.Encoding.Default);
string strHTML = redStream.ReadToEnd();
redStream.Close();
recStream.Close();
result.Close();
return strHTML;
}
catch (Exception)
{
return "";
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥阳县| 陕西省| 周至县| 久治县| 龙泉市| 赣州市| 勃利县| 铜川市| 抚宁县| 永州市| 乐亭县| 胶南市| 内黄县| 陆河县| 察隅县| 鲁甸县| 娄烦县| 隆德县| 黄陵县| 石河子市| 穆棱市| 哈巴河县| 环江| 靖远县| 鹤庆县| 东阳市| 玛沁县| 唐山市| 瓦房店市| 荔浦县| 甘洛县| 宣城市| 茌平县| 黄石市| 遂平县| 旬邑县| 泰和县| 惠州市| 城口县| 图木舒克市| 邹城市|