用post方法从网上抓取信息

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

前些天有个要求要从某个网站上取信息,但是该网站要求用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.cnblogs.com/lwyaster/archive/2007/01/09/615815.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航