用post方法从网上抓取信息

原创 2007年10月01日 12:59:00
using System.Net;

static string WebClinetPost(string url, string postData,string encodeType,out string err)
  {
   string uriString = url; 
   byte[] byteArray; 
   byte[] responseArray; 
   //postData = "checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22";
   Encoding encoding = Encoding.GetEncoding(encodeType);
   try
   {
    WebClient myWebClient = new WebClient();
    WebHeaderCollection myWebHeaderCollection; 
    myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded"); 
    //myWebClient.Headers.Add("Referer","http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx"); 
    //myWebClient.Headers.Add("Accept-Language","zh-cn"); 
    myWebHeaderCollection = myWebClient.Headers; 
 
    byteArray = encoding.GetBytes(postData);
    responseArray = myWebClient.UploadData(uriString,"POST",byteArray); 

    err=string.Empty;
    return encoding.GetString(responseArray);
   }
   catch(Exception ex)
   {
    err=ex.Message;
    return string.Empty;
   }
  }
  public static string HttpWebResponsePost(string url, string postData,string encodeType,out string err)
  {

   Stream outstream = null;

   Stream instream = null;

   StreamReader sr = null;

   HttpWebResponse response = null;

   HttpWebRequest request = null;

   Encoding encoding = Encoding.GetEncoding(encodeType);

   byte[] data = encoding.GetBytes(postData);

   try

   {   

    request = WebRequest.Create(url) as HttpWebRequest;

    CookieContainer cookieContainer = new CookieContainer();

    request.CookieContainer = cookieContainer;

    request.AllowAutoRedirect = true;

    request.Method = "POST";

    request.ContentType = "application/x-www-form-urlencoded";

    request.ContentLength = data.Length;

    outstream = request.GetRequestStream();

    outstream.Write(data,0,data.Length);

    outstream.Close();

    response = request.GetResponse() as HttpWebResponse; 
    instream = response.GetResponseStream(); 
    sr = new StreamReader( instream, encoding ); 
    string content = sr.ReadToEnd(); 

    err = string.Empty; 
    return content;

   }

   catch(Exception ex) 
   {

    err = ex.Message; 
    return string.Empty;

   } 
  }

调用代码:
   string url="http://xxxxxx/xxxxxxxx/scrrm00542.jsp";
   string postData="proj_id=600197&theSubmit=600197";
   string encodeType="utf-8";
   string err="";
   //string content=HttpWebResponsePost(url,postData,encodeType,out err);
   string content=WebClinetPost(url,postData,encodeType,out err);

另外,再附上javascript实现的代码吧:
<script language=javascript>
 function GetData()
 {

  var postData = "proj_id=600197&theSubmit=600197";
  var http = new GetXMLHTTPRequest();
  http.open('POST', 'http://xxxxxxxxxx/xxxxxx/scrrm00542.jsp', false);
  http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  http.send(postData);
 
  return http.responseText;
 }

 function GetXMLHTTPRequest()
 {
  var progIDs = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
  for (var i = 0; i < progIDs.length; ++i)
  {
   var progID = progIDs[i];
   try
   {
    var x = new ActiveXObject(progID);
    return x;
   }
   catch (e)
   {}
  }
 }
</script>

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

爬虫抓取美团网上所有商家信息

由于美团网对于IP访问次数有限制,当访问达到一定次数美团会增加延迟,访问次数再增加时就会有验证码,所以爬取时就需要注意控制访问的频率,以及访问一定次数后更换代理IP. 在爬取过程中我们可以先抓取所有的...

C#几种模拟自动登录和提交POST信息的实现方法

网页自动登录(提交Post内容)的用途很多,如验证身份、程序升级、网络投票等,以下是用C#实现的方法。        网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,...
  • llftc
  • llftc
  • 2011-12-23 11:17
  • 1437

C#三种模拟自动登录和提交POST信息的实现方法

在实际编程过程中,我们经常会遇到验证身份、程序升级网络投票会员模拟登陆等需要,C#给我们提供了以下的实现方法:          网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML...

C#三种模拟自动登录和提交POST信息的实现方法

网页自动登录(提交Post内容)的用途很多,如验证身份、程序升级、网络投票等,以下是用C#实现的方法。        网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,...

curl post 中文内容及请求头信息的修改方法

curl_slist *plist = curl_slist_append(NULL, "Content-Type: application/x-www-form-urlencoded; charse...

C#网页自动登录和提交POST信息的多种方法

网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser、WebClient、HttpWebRequest这三...

Android开发 httpclient Post方法实现从tomcat服务器(JSP)获取listview信息

package com.example.httplistview; import java.io.IOException; import java.io.InputStream; import ja...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)