Napisałem w C# metodę wysyłającą SMS z MultiMoxa Orange. Wszystko działa cacy ale jedynie pod windą :/
Problem jest już w miejscu wpisywana requesta:
Kod: Zaznacz cały
Stream reqStream = req.GetRequestStream();
reqStream.Write(bdata, 0, bdata.Length);
reqStream.Close();
Nie sprawdzałem jeszcze pod Mono 1.2.4 (mam problem z zainstalowaniem biblioteki gtk-sharp w wersji 2.8.0)
Czy ktoś programuje pod Ubuntu w języku C#? Jeśli uda mi się pokonać te problemy chętnie umieszczę ten mały programik, ale bardzo proszę o pomoc (Ubuntu mam od ok miesiąca). Co może powodować ten błąd? Jak zainstalować gtk-sharp v2.8.0 (w sinaptiku jest tylko 1.1.... i nie mogę wskazać innej). Jak zainstalować mono-debugger?
Proszę o pomoc,
Załączam kod metody:
Kod: Zaznacz cały
public static int SendSMS(string user, string pass, string msg, string tel)
{
string postData = "%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.loginSuccessURL=" +
"http%3A%2F%2Fwww.orange.pl%2Fportal%2Fmap%2Fmap%2Fmessage_box?mbox_view=newsms&mbox_edit=new" +
"&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.loginSuccessURL=" +
"+&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.login=" +
"+&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.password=" +
"+&_D%3A%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.login=" +
"+&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.login=" + user +
"&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.value.password=" + pass +
"&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.login.x=" +
"7&%2Famg%2Fptk%2Fmap%2Fcore%2Fformhandlers%2FAdvancedProfileFormHandler.login.y=7";
byte[] bdata = System.Text.ASCIIEncoding.ASCII.GetBytes(postData);
string url = @"https://www.orange.pl/portal/map/map/signin?_DARGS=/gear/static/signInLoginBox.jsp";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Accept = "*";
req.UserAgent = PRZEGLADARKA;
req.ContentLength = bdata.Length;
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.CookieContainer = new CookieContainer();
Stream reqStream = req.GetRequestStream();
reqStream.Write(bdata, 0, bdata.Length);
reqStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Stream resStream = res.GetResponseStream();
StreamReader reader = new StreamReader(resStream);
string data = reader.ReadToEnd();
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("bezpłatne:</span>.*?<span class=\"value\">(?<ILE>\\d+)</span>", System.Text.RegularExpressions.RegexOptions.Multiline);
System.Text.RegularExpressions.Match mat = reg.Match(data.Replace("\n", " "));
if (mat.Success)
{
postData = @"_dyncharset=UTF-8&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.type=sms&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.type=+&enabled=false&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.errorURL=%2Fportal%2Fmap%2Fmap%2Fmessage_box%3Fmbox_view%3Dnewsms&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.errorURL=+&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.successURL=%2Fportal%2Fmap%2Fmap%2Fmessage_box%3Fmbox_view%3Dmessageslist&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.successURL=+&smscounter=1&counter=628&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.to=" + tel + "&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.to=+&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.body=+&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.body=" + msg + "&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create.x=55&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create.y=17&%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create=Wy%C5%9Blij&_D%3A%2Famg%2Fptk%2Fmap%2Fmessagebox%2Fformhandlers%2FMessageFormHandler.create=+&_DARGS=%2Fgear%2Fmapmessagebox%2Fsmsform.jsp";
bdata = System.Text.ASCIIEncoding.ASCII.GetBytes(postData);
url = @"http://www.orange.pl/portal/map/map/message_box?_DARGS=/gear/mapmessagebox/smsform.jsp";
HttpWebRequest req2 = (HttpWebRequest)WebRequest.Create(url);
req2.Accept = "*";
req2.UserAgent = PRZEGLADARKA;
req2.ContentLength = bdata.Length;
req2.ContentType = "application/x-www-form-urlencoded";
req2.Method = "POST";
req2.CookieContainer = req.CookieContainer;
Stream reqStream2 = req2.GetRequestStream();
reqStream2.Write(bdata, 0, bdata.Length);
reqStream2.Close();
return Convert.ToInt32(mat.Groups["ILE"].Value);
}
}
catch
{
}
return -1;
}