Всем привет, сегодня вы научитесь делать запросы в c# для php и получать с php ответ! (сори за тавтологию) Для начало давайте создадим маленький C# скрипт using System; using System.Text; using System.Windows; using System.Net; using System.Collections.Specialized; namespace CSharpAndPHP { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void StartTest_Click(object sender, RoutedEventArgs e) { Test(); } string url = "http://site.ru/send"; //Создадим переменную с ссылкой на наш сайт string DataFromServer; //Тут мы храним все ответы с сервера public void Send(string command, string[] NameComand, string[] SendComand)//Создадим метод отправки { try { WebClient wc = new WebClient(); NameValueCollection dataToSend = new NameValueCollection(); //Масив с данными dataToSend["command"] = command; //наша команда (по позже объясню...), for (int x = 0; x < NameComand.Length; x++) //Загружаем все в масив dataToSend через for { dataToSend[NameComand[x]] = SendComand[x];//Загружаем все в масив(название команды и что она хранит) //MessageBox.Show(NameComand[x] + " " + SendComand[x]); //Раскоментируйте, если хотите проверить, поступают ли данные в масив.. } DataFromServer = Encoding.UTF8.GetString(wc.UploadValues([USER=2228771]@URL[/USER], dataToSend));//Отправляем и получаем ответ(если он есть) } catch (Exception e) { Message(e.ToString()); } //В случае ошибки - выводим ошибку на экран } //Теперь можем создать тестовый метод для отправки на сервер, давайте попробуем сделать физику на нашем сервере, и сложим 5 переменных, а именно текст, начинаем... void Test() { //в массиве на 1-ницу всегда должно быть больше!!!(написал для "программистов"...) string[] NameComand = new string[5]; //Тут мы храним запросы string[] SendComand = new string[5]; //Тут команды NameComand[0] = "string_0"; NameComand[1] = "string_1"; NameComand[2] = "string_2"; NameComand[3] = "string_3"; NameComand[4] = "string_4"; SendComand[0] = "Создатель"; SendComand[1] = "данного"; SendComand[2] = "скрипта"; SendComand[3] = "Maksim360360"; SendComand[4] = "https://zelenka.guru/members/370580/"; //Send("Test", NameComand, SendComand); //Test - это наша команда, увидите в скрипте php, про что я говорю... NameComand и SendComand, вы уже знаете, за что отвечают... Send("Test", NameComand, SendComand); Message(DataFromServer);//выводим текст (не спрашивайте почему много медов, мне так и красивее и лучше...) } //Теперь давайте создании метод для вывода и вызовем его из метода Test - void Message(string Message) { MessageText.Text = Message; } } } Код using System; using System.Text; using System.Windows; using System.Net; using System.Collections.Specialized; namespace CSharpAndPHP { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void StartTest_Click(object sender, RoutedEventArgs e) { Test(); } string url = "http://site.ru/send"; //Создадим переменную с ссылкой на наш сайт string DataFromServer; //Тут мы храним все ответы с сервера public void Send(string command, string[] NameComand, string[] SendComand)//Создадим метод отправки { try { WebClient wc = new WebClient(); NameValueCollection dataToSend = new NameValueCollection(); //Масив с данными dataToSend["command"] = command; //наша команда (по позже объясню...), for (int x = 0; x < NameComand.Length; x++) //Загружаем все в масив dataToSend через for { dataToSend[NameComand[x]] = SendComand[x];//Загружаем все в масив(название команды и что она хранит) //MessageBox.Show(NameComand[x] + " " + SendComand[x]); //Раскоментируйте, если хотите проверить, поступают ли данные в масив.. } DataFromServer = Encoding.UTF8.GetString(wc.UploadValues([USER=2228771]@URL[/USER], dataToSend));//Отправляем и получаем ответ(если он есть) } catch (Exception e) { Message(e.ToString()); } //В случае ошибки - выводим ошибку на экран } //Теперь можем создать тестовый метод для отправки на сервер, давайте попробуем сделать физику на нашем сервере, и сложим 5 переменных, а именно текст, начинаем... void Test() { //в массиве на 1-ницу всегда должно быть больше!!!(написал для "программистов"...) string[] NameComand = new string[5]; //Тут мы храним запросы string[] SendComand = new string[5]; //Тут команды NameComand[0] = "string_0"; NameComand[1] = "string_1"; NameComand[2] = "string_2"; NameComand[3] = "string_3"; NameComand[4] = "string_4"; SendComand[0] = "Создатель"; SendComand[1] = "данного"; SendComand[2] = "скрипта"; SendComand[3] = "Maksim360360"; SendComand[4] = "https://zelenka.guru/members/370580/"; //Send("Test", NameComand, SendComand); //Test - это наша команда, увидите в скрипте php, про что я говорю... NameComand и SendComand, вы уже знаете, за что отвечают... Send("Test", NameComand, SendComand); Message(DataFromServer);//выводим текст (не спрашивайте почему много медов, мне так и красивее и лучше...) } //Теперь давайте создании метод для вывода и вызовем его из метода Test - void Message(string Message) { MessageText.Text = Message; } } } (исходники проекта будут ниже(C# и php)...) Теперь напишем php скрипт, начинаем создадим папку send и в ней файл index.php В нем напишем - <?php //означает что это php скрипт(может кто-то не знает...) //$Название переменной = $_POST['тут названия запросов с C#']; $Сommand = $_POST['command']; //принимаем нашу команду (она нам понабенится дальше, если вы хотите 2 разных скрипта для 1- скрипта C#...) $Msg_0 = $_POST['string_0'];//принимаем наше сообщение))) $Msg_1 = $_POST['string_1'];//принимаем наше сообщение))) $Msg_2 = $_POST['string_2'];//принимаем наше сообщение))) $Msg_3 = $_POST['string_3'];//принимаем наше сообщение))) $Msg_4 = $_POST['string_4'];//принимаем наше сообщение))) switch($Сommand)//Вот наши и команды { case "Test": //если мы отправили команду Test, то выполняем код после : //теперь можем соединить наш текст) начинаем! $MsgAll = "$Msg_0 $Msg_1 $Msg_2 $Msg_3 $Msg_4";//Собираем)) echo $MsgAll; break; case "Test2": //Оставил как пример, как сделать 2-ю команду... break; } ?> php <?php //означает что это php скрипт(может кто-то не знает...) //$Название переменной = $_POST['тут названия запросов с C#']; $Сommand = $_POST['command']; //принимаем нашу команду (она нам понабенится дальше, если вы хотите 2 разных скрипта для 1- скрипта C#...) $Msg_0 = $_POST['string_0'];//принимаем наше сообщение))) $Msg_1 = $_POST['string_1'];//принимаем наше сообщение))) $Msg_2 = $_POST['string_2'];//принимаем наше сообщение))) $Msg_3 = $_POST['string_3'];//принимаем наше сообщение))) $Msg_4 = $_POST['string_4'];//принимаем наше сообщение))) switch($Сommand)//Вот наши и команды { case "Test": //если мы отправили команду Test, то выполняем код после : //теперь можем соединить наш текст) начинаем! $MsgAll = "$Msg_0 $Msg_1 $Msg_2 $Msg_3 $Msg_4";//Собираем)) echo $MsgAll; break; case "Test2": //Оставил как пример, как сделать 2-ю команду... break; } ?> теперь залейте скрипт на свой сайт и посмотрите результат)... Исходники, как и обещал - https://yadi.sk/d/yeexTVExmTsCQw Аватарку мне!)
Но.. это же не безопасно... Твой запрос можно легко перехватить Fiddler`oм или чарли и изменить как хочешь
NavigatoR, я в курсе что не безопасно, это были просто основы... --- Сообщение объединено с предыдущим 29 ноя 2019 и кстати, некогда не доверяйте то, что вам присылают в _POST, лучше проверить, а как, я расскажу немного по позже)