Nie mam pojęcia co może być nie tak.
// Login, hasło, standardowe dane z formularza, wszystko według schematu. Te wartości są stałe. Jedynie był problem z URL, bo ten co wcześniej używaliśmy serwer odsyłał już pod wysłaniu formularza, a ten co dałem tutaj "flg=1", jest przed wysłaniem i zawsze jest taki sam (Przynajmniej przez moje kilkanaście prób).
String^ PostData = "login_username=login&login_password=pass&"
+"subm=&serwis=nowa_poczta_wp&idu=99&url="
+"http://poczta.wp.pl/index.html?flg=1"
+"&savessl=0&logowaniessl=1&"
+"minipoczta=0&tryLogin=1&countTest=1";
try
{
//Zmieniony adres na poprawny, czyli przed przekierowaniem.
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^> (WebRequest::Create("http://poczta.wp.pl"));
//Akceptowane dane. Tu był problem, ale wziąłem dane z Fiddlera. Jeśli serwer wysłał w takim formacie to musi i przyjąć.
request->Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request->AllowAutoRedirect = true;
//Identyfikacja na serwerze chyba bez znaczenia, wziąłem to co Fiddler wyrzucił, czyli Firefoxa
request->UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
request->Timeout= 600000;
request->Method = "POST";
if (request->Method == "POST")
{
// Typ nagłówka przy wysyłaniu. Też dane z Fiddlera.
request->ContentType = "text/html; charset=iso-8859-2";
ASCIIEncoding^ encoding = gcnew ASCIIEncoding;
array<Byte ,1> ^ postByteArray = encoding->GetBytes(PostData);
request->ContentLength = postByteArray->Length;
Stream ^postStream = request->GetRequestStream();
postStream->Write(postByteArray, 0, postByteArray->Length);
postStream->Close();
}
HttpWebResponse ^response = dynamic_cast<HttpWebResponse^> (request->GetResponse());
if (response->StatusCode == HttpStatusCode::OK)
{
Stream ^responseStream = response->GetResponseStream();
StreamReader ^myStreamReader = gcnew StreamReader(responseStream);
responseData = myStreamReader->ReadToEnd();
}
response->Close();
}
catch (Exception ^e)
{
responseData = "Error: " + e->Message;
}
richTextBox1->AppendText(responseData);
}
Wszystko to co najważniejsze wydaje się poprawne, albo o czymś jeszcze nie wiem :/ Nie wiem gdzie robię błąd, a ciężko jest to sprawdzić :/
Jak na razie jadę na debuggerze i szukam gdzie co może być nie tak, ale cienko to widzę...