我想将数据从c#发送到php

时间:2014-04-04 16:17:47

标签: c# php

我想从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文件时,它总是转到其他部分。我该如何纠正?

2 个答案:

答案 0 :(得分:1)

您没有对POST数据进行编码。发送POST数据时,值必须是URL编码的。我怀疑data中有一个特殊字符导致PHP无法解析POST数据。

编码值:

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

答案 1 :(得分:1)

请注意,PHP中从不使用$tempdata变量。

您是否尝试在C#程序中显示请求的响应?添加另一个echo "hello";超出您的条件,以查看连接是否有效。