Pierwsze polaczenie :
String POSTvalues = ""; // nie pokaze :)
cookies = new CookieContainer();
request = (HttpWebRequest)WebRequest.Create("http://"+eHost.Text+"/index.php");
request.KeepAlive = true;
request.CookieContainer=cookies;
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = POSTvalues.Length + connParam.Length + uagentParam.Length + 6; //+2 bo 2 znaki konca linii
requestStream = new StreamWriter(request.GetRequestStream());
try
{
requestStream.WriteLine(POSTvalues);
requestStream.WriteLine(uagentParam);
requestStream.WriteLine(connParam);
requestStream.Flush();
}
catch (WebException we) { MessageBox.Show(" ERROR : " + we.Message); }
response = (HttpWebResponse)request.GetResponse();
responseStream = new StreamReader(response.GetResponseStream());
while (!responseStream.EndOfStream) {
eData.AppendText(responseStream.ReadLine()+"\n");
}
A oto chec nowego requesta przy zachowaniu statusu zalogowania, ktora poprzednia czesc realizuje :
request = (HttpWebRequest)WebRequest.Create("http://" + eHost.Text + "/index2.php");
request.Method = WebRequestMethods.Http.Get;
request.ContentType = "Content-Type: text/html; charset=UTF-8";
response = (HttpWebResponse)request.GetResponse();
responseStream = new StreamReader(response.GetResponseStream());
while (!responseStream.EndOfStream)
{
eData.AppendText(responseStream.ReadLine() + "\n");
}
Przy czym w calej klasie okna zmienne ktorych uzywam sa "globalne" dla obu metod (zwiazanych z dwoma buttonami) :
private HttpWebRequest request;
private CookieContainer cookies;
private StreamWriter requestStream;
private HttpWebResponse response;
private StreamReader responseStream;
private const string connParam = "Connection: keep-alive";
private const string uagentParam = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4";
No i jak juz pisalem przy drugim zadaniu GET/POST jestem traktowany jako niezalogowany...