Я хочу отправить данные из С# в php

Я хочу отправить строку (данные) с С# на PHP, но я не могу получить данные на PHP. Вот мой код на С#

string deviceUrl ="http://localhost/CBIRS/clusteringdata.php";
 HttpWebRequest reqDevice = (HttpWebRequest)WebRequest.Create(deviceUrl);
 reqDevice.Method = "POST";
 string deviceData = "status="+ data;
 byte[] postDeviceBytes = Encoding.ASCII.GetBytes(deviceData);
 reqDevice.ContentType = "application/x-www-form-urlencoded";
 reqDevice.ContentLength = postDeviceBytes.Length;
 Stream requestDeviceStream = reqDevice.GetRequestStream();
 requestDeviceStream.Write(postDeviceBytes, 0, postDeviceBytes.Length);
 requestDeviceStream.Close();

и мой PHP-код выглядит следующим образом.

if(isset($_POST['status']))
 {
 $tempdata=explode('$',$_POST['status']);
 var_dump($tempdata);
 }
 else
 {
 echo "Data not recieved";
 }

после запуска приложения С#, когда я запускаю PHP файл, он всегда переходит в другую часть. Как я могу это исправить?

2 ответа

Вы не кодируете данные POST. Когда вы отправляете данные POST, значения должны быть закодированы в URL. Я подозреваю, что в data есть специальный символ, который заставляет PHP не анализировать данные POST.

Чтобы закодировать значение:

string deviceData = "status="+ HttpUtility.UrlEncode(data);


Обратите внимание, что переменная $tempdata никогда не используется в вашем PHP.

Вы пытались отобразить ответ своего запроса в своей программе на С#? Добавить еще одно echo "hello"; из вашего состояния, чтобы узнать, работает ли соединение.

licensed under cc by-sa 3.0 with attribution.