用post方法从网上抓取信息

星辰v梦幻

星辰v梦幻

2016-02-19 21:52

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享用post方法从网上抓取信息吧。

  前些天有个要求要从某个网站上取信息,但是该网站要求用post方式访问的.现在这里贴两个google到的方法.

  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;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

      CookieContainer cookieContainer = new CookieContainer();

      request.CookieContainer = cookieContainer;

      request.AllowAutoRedirect = true;

      request.Method = "POST";

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

      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

  http://www.cnblogs.com/lwyaster/archive/2007/01/09/615815.html

展开更多 50%)
分享

猜你喜欢

用post方法从网上抓取信息

Web开发
用post方法从网上抓取信息

一个从别的网站抓取信息的例子(域名查询)

PHP
一个从别的网站抓取信息的例子(域名查询)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用php获取信息实例

Web开发
用php获取信息实例

实例讲解ASP实现抓取网上房产信息

ASP
实例讲解ASP实现抓取网上房产信息

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

影音先锋正在获取信息怎么解决

软件教程
影音先锋正在获取信息怎么解决

javascript ajax获取信息功能代码

Web开发
javascript ajax获取信息功能代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Asp.Net2.0中实现多任务异步页的一点提示

Asp.Net2.0中实现多任务异步页的一点提示

11月11日还有捉猫猫游戏吗

11月11日还有捉猫猫游戏吗
下拉加载更多内容 ↓