Всем привет! Учусь писать приложение на C# пока делаю все в на шаблоне консольного приложения. так вот немного теории того что должно уметь мое приложение Приложение делает авторизацию на сервере далее приложение делает еще один запрос такого типа type=togetthedetails&id=zfvf456d сервер при этом вернет ответ типа balans - 10 далее Приложение отправляет на ресурс запрос типа type=replacesession&id=zfvf456d&win dowslogin=Саша сервер при этом вернет ответ типа status - expect после чего приложение должно начать делать запросы каждую секунду в течении одной минуты запрос такой type=status&id=zfvf456d&windowslogi n=Саша сервер при этом может ответить expect и если он так ответил и минута еще не прошла приложение должно продолжать делать такие запросы пока не получит ответ типа Port - 15987, Login - Саша, Password - S1z8Q4tW1, ip - 152.54.42.198, type - remoteapp все значения этих данных необходимо положить в отдельные переменные так вот у меня проблема в следующем подключиться к сайту и получить ответ у меня получилось но я никак не могу нафти информацию о том как условием проверить что в ответе, ка кразложить ответ на переменные, ка кзапустить цикл на одну минуту что бы делать запросы, и еще не могу понять как сночало подключится к сайту а затем отправлять запросы не один а несколько запросов вот код моего приложения Код: Код using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { HttpWebResponse result = null; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://мой сайт/handlers/exchange/1c_exchange.php?"); req.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)"; req.Credentials = new NetworkCredential("admin", "admin"); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; byte[] SomeBytes = null; string FormParams = "type=sale&mode=checkauth"; SomeBytes = Encoding.UTF8.GetBytes(FormParams); req.ContentLength = SomeBytes.Length; Stream newStream = req.GetRequestStream(); newStream.Write(SomeBytes, 0, SomeBytes.Length); newStream.Close(); result = (HttpWebResponse)req.GetResponse(); // выводим результат в консоль StreamReader myStreamReader = new StreamReader(result.GetResponseStream(), Encoding.GetEncoding(1251)); string subString1 = myStreamReader.ReadToEnd(); Console.WriteLine(subString1); Console.Read(); } } }
Ну коли всё равно вам пока никто не ответил, попробую подсказать с логикой, но я к сожалению не знаю си шарп. Синтаксис и операторы/методы в сишарпе тоже не знаю. у вас должно примерно что то получиться типа такого: Code: этот цикл например отработает одну минуту, срабатывание через каждую секунду строка string_resp; int i=0; while (i<60) { http_запрос_на_ваш_сервер; string_resp=response_сервера; if( строка string_resp.Pos("login")|| string_resp.Pos("Password") )//если в строке ответа есть вхождение "login" или "Password" { break;//выходим } i ++; Sleep(1000); //пауза 1000 миллисекунд. } далее получается что в string_resp у вас есть необходимые данные, логин, пароль, айпи, парсим их в нужные переменные. Незаю как в сишарпе, чем удобно парсить, но я в с++ билдере например для этого обычно использую строковые функции - delete, substring