从C#WinForm将数据发布到PHP页面
我有一个winForms NET3.5SP1应用程序,想将数据发布到PHP页面 我还将以JSON的形式传递它,但我想先让它直接工作 代码如下:从C#WinForm将数据发布到PHP页面,c#,php,winforms,C#,Php,Winforms,我有一个winForms NET3.5SP1应用程序,想将数据发布到PHP页面 我还将以JSON的形式传递它,但我想先让它直接工作 代码如下: Person p = new Person(); p.firstName = "Bill"; p.lastName = "Gates"; p.email = "asdf@hotmail.com"; p.deviceUUID = "abcdefghijklmnopqrstuvwxyz"; JavaScrip
Person p = new Person();
p.firstName = "Bill";
p.lastName = "Gates";
p.email = "asdf@hotmail.com";
p.deviceUUID = "abcdefghijklmnopqrstuvwxyz";
JavaScriptSerializer serializer = new JavaScriptSerializer();
string s;
s = serializer.Serialize(p);
textBox3.Text = s;
// s = "{\"firstName\":\"Bill\",\"lastName\":\"Gates\",\"email\":\"asdf@hotmail.com\",\"deviceUUID\":\"abcdefghijklmnopqrstuvwxyz\"}"
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.davemateer.com/ig/genius/newuser.php");
//WebRequest request = WebRequest.Create("http://www.davemateer.com/ig/genius/newuser.php");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//byte[] byteArray = Encoding.UTF8.GetBytes(s);
byte[] byteArray = Encoding.ASCII.GetBytes(s);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close ();
WebResponse response = request.GetResponse();
textBox4.Text = (((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd ();
textBox4.Text += responseFromServer;
reader.Close ();
dataStream.Close ();
response.Close ();
PHP5.2代码为:
<?php
echo "hello world";
var_dump($_POST);
?>
有什么想法吗?我希望它返回我刚刚传递的值,以证明我可以从服务器端访问数据。我认为您需要正确编码并发送实际的帖子内容。看起来您只是在序列化为JSON,PHP不知道如何处理它(即,它不会将其设置为
$\u POST
值)
这将在PHP集中获得$\u POST
变量。稍后,当您切换到JSON时,您可以执行以下操作:
string postData = "json=" + HttpUtility.UrlEncode(serializer.Serialize(p) );
并从PHP抓取:
$json_array = json_decode($_POST['json']);
string postData = "json=" + HttpUtility.UrlEncode(serializer.Serialize(p) );
$json_array = json_decode($_POST['json']);