//得到cookie值的方法
[STAThread]
public static string RemoteLogin(string strLoginUrl, string strPostData, string cookieName)
{
CookieContainer cContainer=new CookieContainer();
byte[] data = System.Text.Encoding.ASCII.GetBytes(strPostData);
string bResult = "";
HttpWebRequest myreq = (HttpWebRequest)WebRequest.Create(strLoginUrl);
myreq.Referer = strLoginUrl;
myreq.Method = "POST";
myreq.KeepAlive = true;
myreq.AllowAutoRedirect = false;
myreq.ContentLength = data.Length;
//cookieContainer = new CookieContainer();
myreq.CookieContainer = cContainer;
myreq.ContentType = "application/x-www-form-urlencoded";
//这个在Post的时候,一定要加上,如果服务器返回错误,他还会继续再去请求,不会使用之前的错误数据,做返回数据
myreq.ServicePoint.Expect100Continue = false;
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); myreq.CachePolicy = noCachePolicy;
try
{
Stream newStream = myreq.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse myres = (HttpWebResponse)myreq.GetResponse();
StreamReader stream;
Encoding encoding;
if (!string.IsNullOrEmpty(myres.CharacterSet))
{
encoding = Encoding.GetEncoding(myres.CharacterSet);
}
else
{
encoding = Encoding.Default;
}
stream = new StreamReader(myres.GetResponseStream(), encoding);
string strHtml = stream.ReadToEnd();
//LogCommon.ilogDebug.Debug(strHtml);
if (myres.Cookies[cookieName] != null && !string.IsNullOrEmpty(myres.Cookies[cookieName].Value)) {
bResult = myres.Cookies[cookieName].Value;
}
if (myreq != null) myreq.Abort();
myres.Close();
}
catch (Exception ex)
{ throw ex; }
return bResult;
}
//调用
RemoteLogin(请求的url,请求需要的参数,cookie的key);