Как зайти на сайт используя собственную страницу asp.net? - PullRequest
0 голосов
/ 20 декабря 2011

Я хочу здесь вызвать другой веб-сайт, войти в него и использовать одну из его функций, используя мой проект asp.net.Я работаю над проектом в asp.net, где моя веб-программа будет отправлять смс на мобильные телефоны.Так как я не хочу подписываться на какие-либо шлюзы или подобные, я нашел этот сайт:

http://sms80.com

Теперь я хочу, чтобы со страницы asp.net мне нужно было зайти на этот сайт, войтии использовать его сервис, но все это должно быть сделано скрытно программно на моей странице asp.net.

Я как-то проверил, что такие элементы веб-сайтов, как текстовое поле имени пользователя и текстовое поле пароля.Я не пытаюсь взломать, но мне просто нужно знать процесс, который я делаю на этом веб-сайте (я вхожу в систему, используя свою учетную запись, затем пишу свое сообщение, пишу номер мобильного телефона и отправляю) программно на моем asp.net.

IЯ провел некоторое исследование и обнаружил, что я могу отправлять или передавать значения в URL-адресах, например:

your_url.aspx?your_url_variable=" + @variable_from_form

, но это не похоже на работу.Есть ли другой способ сделать это?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Если на другом веб-сайте нет API, вход в который выполняется программно, это не простой процесс.

Требуется много исследовательской работы и анализа работы сайта, на который вы пытаетесь зайти.Процесс состоит в том, чтобы сначала определить, что отправляется в данных поста связи запрос / ответ, с помощью инструмента, такого как Fiddler .

Затем вам нужно сконструировать серию GET и POST, используялибо HttpWebRequest / HttpWebResponse классы, либо WebClient класс, так что вы можете имитировать то, как это делает браузер.

Примером может быть:

string url = "http://sms80.com";
HttpWebRequest http = (HttpWebRequest)WebRequest.Create(url);
http.CookieContainer = _cookieJar;
http.Connection = "Keep-alive";
http.Method = "POST";
http.ContentType = "application/x-www-form-urlencoded";
string postData="username=" + username + "&password=" + password;
byte[] dataBytes = UTF8Encoding.UTF8.GetBytes(postData);
http.ContentLength = dataBytes.Length;
Stream postStream = http.GetRequestStream();
postStream.Write(dataBytes, 0, dataBytes.Length);
postStream.Close();
// see if we're logged in
HttpWebResponse httpResponse = (HttpWebResponse)http.GetResponse();
// continue (read the response etc.)
0 голосов
/ 20 декабря 2011

То, что вы описываете в своем вопросе, называется "отправка параметров формы с помощью GET" .Даже если вы потенциально можете вмешаться и имитировать запрос данных из формы HTML, сервер может проверить некоторые другие данные в заголовке HTTP, например ссылающуюся веб-страницу (которая должна быть страницей формы!), И запретить выполнение вашего запроса.Я могу себе представить, что сайт, предназначенный для отправки SMS, может иметь этот механизм защиты.

Правильный способ реализации этой функции - запросить доступ к API, например, к веб-сервисам, которые вы можете вызывать из своего приложения для выполненияопределенное действие, например отправка SMS.Это может быть не так дешево, как отправка SMS с веб-формы, но это единственный законный способ встроить эту функцию в ваше приложение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...