网络软件 系统工具 应用软件 图形图像 多媒体类 免费游戏 安全相关 免费音乐 网页素材 电子书籍 考试考题 建站源码
教育教学 多媒体类 编程开发 操作系统 游戏天地 娱乐天地 简历求职 站长专区 网页设计 安全技术 图形图像 文学驿站
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网页设计 | 技术开发 | 专栏
当前位置:热点网络学院网站建设经验技巧用post方法从网上抓取信息
精品推荐
热点TOP10
·世界经典网页设计
·如何让Windows操作系统系统从USB启动
·网站地图制作工具
·弹出网页窗口全攻略(html/hta)
·忘记密码不再怕 Windows登录密码轻松破解
·学习网站建设中一些容易被忽视的问题
·巧妙复制网页内容的方法
·网页制作经典技巧24条
·快速提高流量的最好办法,绝对有效!
·使用脚本控制网页Table的显示隐藏(全代码)
·设计网站大全
·[Google Adsense]如何增加点击率
·巧妙破除网页右键禁用的十大绝招
·经验分享才是最好的营销
·几个LOGO背景网页素材网站
·制作仿“QQ秀”的虚拟形象
·素材网站、优秀设计素材大全
·网页小技巧:如何去除超链接的下划线
·禁止鼠标右键的几种方法
·实现网页制作中“层”精确定位的绝招
用post方法从网上抓取信息
日期:2007年1月13日 作者: 查看:[大字体 中字体 小字体]

前些天有个要求要从某个网站上取信息,但是该网站要求用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;

    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>

(出处:http://www.vipcn.com)

关于我们 | 帮助(?) | 版权声明 | 友情连接 
Copyright 2005-2005 viphot.com All Rights Reserved.
Powered by:mesky