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