濮阳杆衣贸易有限公司

主頁 > 知識庫 > HttpWebRequest的常見錯誤使用TcpClient可避免

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

熱門標(biāo)簽:蘋果手機凱立德地圖標(biāo)注 申請400電話手續(xù) 玉林市機器人外呼系統(tǒng)哪家好 南陽外呼系統(tǒng)定制化 合肥電銷外呼系統(tǒng)哪家公司做的好 預(yù)測式外呼系統(tǒng)使用說明 同安公安400電話怎么申請流程 百度ai地圖標(biāo)注 電話機器人軟件銷售工作
有時使用HttpWebRequest對象會出現(xiàn)錯誤,總結(jié)有三種:
1、System.Net.WebException: 服務(wù)器提交了協(xié)議沖突. Section=ResponseStatusLine
2、System.Net.WebException: 基礎(chǔ)連接已經(jīng)關(guān)閉: 連接被意外關(guān)閉。
3、System.Net.ProtocolViolationException: 無法發(fā)送具有此謂詞類型的內(nèi)容正文。
使用TcpClient對象搞定
復(fù)制代碼 代碼如下:

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協(xié)議頭部信息
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);
//獲取要保存的網(wǎng)絡(luò)流
Stream readStream = clientSocket.GetStream();
StreamReader sr = new StreamReader(readStream, Encoding.Default);
strHTML = sr.ReadToEnd();
readStream.Close();
clientSocket.Close();
return strHTML;
}

使用 HttpWebRequest請求頁面
復(fù)制代碼 代碼如下:

///
/// 獲取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 "";
}
}
您可能感興趣的文章:
  • C#中HttpWebRequest的用法詳解
  • HttpWebRequest和HttpWebResponse用法小結(jié)
  • C#采用HttpWebRequest實現(xiàn)保持會話上傳文件到HTTP的方法
  • HttpWebRequest出錯.Section=ResponseHeader Detail=CR
  • .net core并發(fā)請求發(fā)送HttpWebRequest的坑解決

標(biāo)簽:臺州 南昌 嘉興 淄博 揚州 南京 南京 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HttpWebRequest的常見錯誤使用TcpClient可避免》,本文關(guān)鍵詞  HttpWebRequest,的,常見,錯誤,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HttpWebRequest的常見錯誤使用TcpClient可避免》相關(guān)的同類信息!
  • 本頁收集關(guān)于HttpWebRequest的常見錯誤使用TcpClient可避免的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    葫芦岛市| 布拖县| 鹿邑县| 桐梓县| 青海省| 梁平县| 雷波县| 湖南省| 兴宁市| 大兴区| 景东| 东兰县| 集安市| 大邑县| 琼中| 平武县| 玛多县| 微博| 栖霞市| 仁化县| 卓尼县| 子长县| 白沙| 林口县| 于都县| 勃利县| 桦南县| 漳州市| 香港| 临桂县| 丰县| 昌黎县| 乐昌市| 八宿县| 鄂伦春自治旗| 郁南县| 长乐市| 湘潭市| 塘沽区| 玉田县| 四平市|