前些天有个要求要从某个网站上取信息,但是该网站要求用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.sithere.net/article.asp?id=484.html
posted on 2007-05-18 01:24  mbskys  阅读(213)  评论(0)    收藏  举报