我想从C#向PHP发送字符串(数据),但我无法在PHP中接收数据。这是我的C#代码
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";
}
运行C#应用程序后,当我运行PHP文件时,它总是转到其他部分。我该如何纠正?
答案 0 :(得分:1)
您没有对POST数据进行编码。发送POST数据时,值必须是URL编码的。我怀疑data
中有一个特殊字符导致PHP无法解析POST数据。
编码值:
string deviceData = "status="+ HttpUtility.UrlEncode(data);
答案 1 :(得分:1)
请注意,PHP中从不使用$tempdata
变量。
您是否尝试在C#程序中显示请求的响应?添加另一个echo "hello";
超出您的条件,以查看连接是否有效。