Tworze program do chomikowania pliku z adresu www na portalu chomikuj.pl.
Logowanie mi działa poprawnie. Natomiast problem mam z chomikowaniem pliku błąd wyskakuje dla linii ([i]jest to około 11 linia od końca[/i]):
postResponse = (HttpWebResponse)postRequest.GetResponse(); // ERROR
Otrzymuję mało mówiący WebException:
Serwer zdalny zwrócił błąd: (500) Wewnętrzny błąd serwera.
Wie ktoś jaka jest tego przyczyna?
KOD PROGRAMU
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using SimpleBrowser;
using SimpleBrowser.Parser;
using System.Xml.Linq;
namespace ChomikBot
{
public partial class Form1 : Form
{
CookieContainer m_ccCiastkaPoZalogowaniu;
string m_sTokenM;
string m_slogin = "kontodotestow";
string m_shaslo = "sad123123";
public Form1()
{
InitializeComponent();
// m_tbLogin.Text = m_slogin;
// m_tbPassword.Text = m_shaslo;
}
private string pobierzToken(string sWtronaWWW)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sWtronaWWW);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string kodStrony = reader.ReadToEnd();
response.Close();
reader.Close();
int pozycjaStart = kodStrony.IndexOf("VerificationToken");
kodStrony = kodStrony.Substring(pozycjaStart, kodStrony.Length - pozycjaStart);
kodStrony = kodStrony.Remove(0, 40);
string token = kodStrony.Substring(0, kodStrony.IndexOf("\""));
token = token.Replace("/", "%2F");
token = token.Replace("+", "%2B");
token = token.Replace("=", "%3D");
//MessageBox.Show(token);
return token;
}
private void m_btLogin_Click(object sender, EventArgs e)
{
try {
// m_slogin = m_tbLogin.Text;
// m_shaslo = m_tbPassword.Text;
m_sTokenM = pobierzToken("http://chomikuj.pl/");
String postData = string.Format("__RequestVerificationToken={0}&ReturnUrl=%2F{1}&Login={1}&Password={2}&rememberLogin=false&topBar_LoginBtn=Zaloguj", m_sTokenM, m_slogin, m_shaslo);
CookieContainer tymczasoweCiastka = new CookieContainer();
UTF8Encoding kodowanie = new UTF8Encoding();
Byte[] byteData = kodowanie.GetBytes(postData);
HttpWebRequest postRequest = (HttpWebRequest)WebRequest.Create("http://chomikuj.pl/action/Login/TopBarLogin");
postRequest.Method = "POST";
postRequest.KeepAlive = true;
postRequest.CookieContainer = tymczasoweCiastka;
postRequest.ContentType = "application/x-www-form-urlencoded";
postRequest.Referer = string.Format("http://chomikuj.pl/{0}", m_slogin);
postRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.2; rv:11.0) Gecko/20100101 Firefox/11.0";
Stream postRequestStream = postRequest.GetRequestStream();
postRequestStream.Write(byteData, 0, byteData.Length);
postRequestStream.Close();
HttpWebResponse postResponse;
postRequest.ServicePoint.Expect100Continue = false;
postResponse = (HttpWebResponse)postRequest.GetResponse();
tymczasoweCiastka.Add(postResponse.Cookies);
m_ccCiastkaPoZalogowaniu = tymczasoweCiastka;
StreamReader postRequestReader = new StreamReader(postResponse.GetResponseStream());
string resultSource = postRequestReader.ReadToEnd();
richTextBox1.Text = resultSource;
}
catch { }
}
private void button1_Click(object sender, EventArgs e)
{
String postData = string.Format("POSTDATA=chosenFolder.ChomikId=117305&chosenFolder.FolderId=73&chosenFolder.Cobskr=-8588058821700884683&hasMusicFIles=False&chosenFolder.Name=Test&SelectedFolderId=0&ChomikId=17993796&TreeTicks=635313214611470000&__RequestVerificationToken=" + m_sTokenM);
CookieContainer tymczasoweCiastka = m_ccCiastkaPoZalogowaniu;
UTF8Encoding kodowanie = new UTF8Encoding();
Byte[] byteData = kodowanie.GetBytes(postData);
HttpWebRequest postRequest = (HttpWebRequest)WebRequest.Create("http://chomikuj.pl/action/content/copy/CopyFolder");
postRequest.Method = "POST";
postRequest.KeepAlive = true;
postRequest.CookieContainer = tymczasoweCiastka;
postRequest.ContentType = "application/x-www-form-urlencoded";
postRequest.Referer = string.Format("http://chomikuj.pl/bb_malek/PO+-+ZiIP+-+stacjonarne+IN*c5*bb/Semestr+IV/MARKETING+*e2*80*93+WYKLAD/testy+do+wielkiego/marketing/marketing/Test/Test");
postRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.2; rv:11.0) Gecko/20100101 Firefox/11.0";
Stream postRequestStream = postRequest.GetRequestStream();
postRequestStream.Write(byteData, 0, byteData.Length);
postRequestStream.Close();
HttpWebResponse postResponse;
postRequest.ServicePoint.Expect100Continue = false;
postResponse = (HttpWebResponse)postRequest.GetResponse();
tymczasoweCiastka.Add(postResponse.Cookies);
m_ccCiastkaPoZalogowaniu = tymczasoweCiastka;
StreamReader postRequestReader = new StreamReader(postResponse.GetResponseStream());
string resultSource = postRequestReader.ReadToEnd();
richTextBox1.Text = resultSource;
}
}
}