post提交獲得html頁面源碼的完成代碼
發(fā)表時間:2023-09-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本文主要和大家分享post提交獲得html頁面源碼的實現(xiàn)代碼,希望能幫助到大家。/// <summary> /// 獲得頁面的html源碼 主要用于后臺生成靜態(tài)文件時獲得源碼 /// </summary> /// <para...
本文主要和大家分享post提交獲得html頁面源碼的實現(xiàn)代碼,希望能幫助到大家。
/// <summary> /// 獲得頁面的html源碼 主要用于后臺生成靜態(tài)文件時獲得源碼 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string GetPageHTML(string url)
{
string httpString = string.Empty;
WebRequest request = WebRequest.Create(url);
request.Timeout = 200000;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusDescription.ToLower().Equals("ok"))
{
using (StreamReader writer = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312")))
{
httpString = writer.ReadToEnd();
}
}
}
return httpString;
}
/// <summary> /// 獲得頁面的html源碼 主要用于后臺生成靜態(tài)文件時獲得源碼UTF-8 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string GetPageHTMLUTF8(string url)
{
string httpString = string.Empty;
WebRequest request = WebRequest.Create(url);
request.Timeout = 200000;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusDescription.ToLower().Equals("ok"))
{
using (StreamReader writer = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")))
{
httpString = writer.ReadToEnd();
}
}
}
return httpString;
}
/// <summary> /// post提交JSON數(shù)據(jù)。支持.net4.0及以下的版本 /// </summary> /// <param name="url"></param> /// <param name="json"></param> /// <returns></returns> public static string GetHtmlByJson(string url, string json = "")
{
var result = string.Empty;
try {
var request = WebRequest.Create(url) as HttpWebRequest;
request.ContentType = "text/json";
request.Method = "post";
//request.CookieContainer = _cookie;
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
var response = (HttpWebResponse)request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
}
}
catch (UriFormatException uex)
{
// 出錯處理 }
return result;
}
/// <summary> /// 利用WebClient 遠程POST數(shù)據(jù)并返回數(shù)據(jù) /// </summary> /// <param name="strUrl">遠程URL地址</param> /// <param name="strParams">參數(shù),要提交的JSON字符串</param> /// <param name="RespEncode">POST數(shù)據(jù)的編碼</param> /// <param name="ReqEncode">獲取數(shù)據(jù)的編碼</param> /// <returns></returns> public static string PostData(string strUrl, string strParams, Encoding RespEncode, Encoding ReqEncode)
{
/** * 本函數(shù)只支持.net4.5以上的框架 HttpClient httpclient = new HttpClient(); try { //打開頁面 httpclient.Credentials = CredentialCache.DefaultCredentials; //從指定的URI下載資源 byte[] responseData = httpclient.DownloadData(strUrl); string srcString = RespEncode.GetString(responseData);
httpclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); string postString = strParams; // 將字符串轉(zhuǎn)換成字節(jié)數(shù)組 byte[] postData = Encoding.ASCII.GetBytes(postString); // 上傳數(shù)據(jù),返回頁面的字節(jié)數(shù)組 responseData = httpclient.UploadData(strUrl, "POST", postData); srcString = ReqEncode.GetString(responseData);
return srcString; } catch (Exception ex) { //記錄異常日志 //釋放資源 httpclient.Dispose(); return string.Empty; } */ return "";
}
/// <summary> /// 執(zhí)行POST提交范例 /// </summary> /// <param name="url"></param> /// <param name="postdata">"LoginName=365admin&Password=fob123"</param> /// <returns></returns> public static string PostPageHTMLUTF8(string url, string postdata)
{
WebClient client = new WebClient();
System.Collections.Specialized.NameValueCollection list = new System.Collections.Specialized.NameValueCollection();
list.Add("opencheckindatatype", "3");
list.Add("starttime", "1492617600");
list.Add("endtime", "1492790400");
// "useridlist": ["james","paul"] list.Add("useridlist", "['TuHuaXing']");
byte[] j = client.UploadValues(url, list);
//var dec = BitConverter.ToInt64(j,0); //string jS = BitConverter.ToString(j); //jS = Convert.ToString(jS,10); return System.Text.Encoding.Default.GetString(j);
//目標頁面獲取值 request.form["id"]
/** WebRequest request7 = WebRequest.Create(url); request7.Method = "POST";
//post傳參數(shù) byte[] bytes = Encoding.ASCII.GetBytes(postdata); request7.ContentType = "application/x-www-form-urlencoded"; request7.ContentLength = postdata.Length; request7.S Stream sendStream = request7.GetRequestStream(); sendStream.Write(bytes, 0, bytes.Length); sendStream.Close();
//得到返回值 WebResponse response7 = request7.GetResponse(); string OrderQuantity = new StreamReader(response7.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd(); return OrderQuantity; //轉(zhuǎn)化成json對象處理 //List<GetOrderQuantity> getOrderQuantity = sr.Deserialize<List<GetOrderQuantity>>(OrderQuantity); **/ }
相關(guān)推薦:
jquery獲得當(dāng)前html頁面源碼的方法_jquery
以上就是post提交獲得html頁面源碼的實現(xiàn)代碼的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護的網(wǎng)站。