html 抓取 post 请求,post提交获得html页面源码的实现代码

//获得页面的html源码主要用于后台生成静态文件时获得源码/publicstaticstringGetPageHTML(stringurl)

{

stringhttpString=string.Empty;

WebRequestrequest=WebRequest.Create(url);

request.Timeout=200000;

using(HttpWebResponseresponse=(HttpWebResponse)request.GetResponse())

{

if(response.StatusDescription.ToLower().Equals("ok"))

{

using(StreamReaderwriter=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("GB2312")))

{

httpString=writer.ReadToEnd();

}

}

}

returnhttpString;

}

//获得页面的html源码主要用于后台生成静态文件时获得源码UTF-8/publicstaticstringGetPageHTMLUTF8(stringurl)

{

stringhttpString=string.Empty;

WebRequestrequest=WebRequest.Create(url);

request.Timeout=200000;

using(HttpWebResponseresponse=(HttpWebResponse)request.GetResponse())

{

if(response.StatusDescription.ToLower().Equals("ok"))

{

using(StreamReaderwriter=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("UTF-8")))

{

httpString=writer.ReadToEnd();

}

}

}

returnhttpString;

}

//post提交JSON数据。支持.net4.0及以下的版本publicstaticstringGetHtmlByJson(stringurl,stringjson="")

{

varresult=string.Empty;

try{

varrequest=WebRequest.Create(url)asHttpWebRequest;

request.ContentType="text/json";

request.Method="post";

//request.CookieContainer=_cookie;

using(varstreamWriter=newStreamWriter(request.GetRequestStream()))

{

streamWriter.Write(json);

streamWriter.Flush();

streamWriter.Close();

varresponse=(HttpWebResponse)request.GetResponse();

using(varreader=newStreamReader(response.GetResponseStream()))

{

result=reader.ReadToEnd();

}

}

}

catch(UriFormatExceptionuex)

{

//出错处理}

returnresult;

}

//利用WebClient远程POST数据并返回数据//远程URL地址///参数,要提交的JSON字符串///POST数据的编码///获取数据的编码///publicstaticstringPostData(stringstrUrl,stringstrParams,EncodingRespEncode,EncodingReqEncode)

{

/***本函数只支持.net4.5以上的框架HttpClienthttpclient=newHttpClient();try{//打开页面httpclient.Credentials=CredentialCache.DefaultCredentials;//从指定的URI下载资源byte[]responseData=httpclient.DownloadData(strUrl);stringsrcString=RespEncode.GetString(responseData);

httpclient.Headers.Add("Content-Type","application/x-www-form-urlencoded");stringpostString=strParams;//将字符串转换成字节数组byte[]postData=Encoding.ASCII.GetBytes(postString);//上传数据,返回页面的字节数组responseData=httpclient.UploadData(strUrl,"POST",postData);srcString=ReqEncode.GetString(responseData);

returnsrcString;}catch(Exceptionex){//记录异常日志//释放资源httpclient.Dispose();returnstring.Empty;}*/return"";

}

//执行POST提交范例/"LoginName=365admin&Password=fob123"///publicstaticstringPostPageHTMLUTF8(stringurl,stringpostdata)

{

WebClientclient=newWebClient();

System.Collections.Specialized.NameValueCollectionlist=newSystem.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);

//vardec=BitConverter.ToInt64(j,0);//stringjS=BitConverter.ToString(j);//jS=Convert.ToString(jS,10);returnSystem.Text.Encoding.Default.GetString(j);

//目标页面获取值request.form["id"]

/**WebRequestrequest7=WebRequest.Create(url);request7.Method="POST";

//post传参数byte[]bytes=Encoding.ASCII.GetBytes(postdata);request7.ContentType="application/x-www-form-urlencoded";request7.ContentLength=postdata.Length;request7.SStreamsendStream=request7.GetRequestStream();sendStream.Write(bytes,0,bytes.Length);sendStream.Close();

//得到返回值WebResponseresponse7=request7.GetResponse();stringOrderQuantity=newStreamReader(response7.GetResponseStream(),Encoding.GetEncoding("utf-8")).ReadToEnd();returnOrderQuantity;//转化成json对象处理//ListgetOrderQuantity=sr.Deserialize>(OrderQuantity);**/}

3650f604316e84a5d14e5942f7e4142c.png

本文转载自中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值