0

如何将 json 字符串从 c# windows 应用程序发布到 php 页面?

我正在使用以下代码,但它从 php 页面返回空字符串?

string Uname, pwd, postData, postData1;
            Uname = txtUname.EditValue.ToString();
            pwd = txtPassword.EditValue.ToString();

            List<request1> JSlist = new List<request1>();
            request1 obj = new request1();
            obj.emailid = Uname;
            obj.password = pwd;
            JSlist.Add(obj);

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string s;
            s = serializer.Serialize(obj);

            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://lab.amusedcloud.com/test/login_action.php");

            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            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();
            MessageBox.Show(((HttpWebResponse)response).StatusDescription);
            dataStream = response.GetResponseStream();

            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            MessageBox.Show(responseFromServer);

            reader.Close();
            dataStream.Close();
            response.Close();

PHP

<?php
$json_array = json_decode($_POST['json']);

?>

连接建立成功,但此 php 页面返回array(0){}

4

1 回答 1

0

根据 ContentType 属性,您应该对发送到 PHP 脚本的内容进行表单编码。如果是这种情况,您需要确保您发送的内容是键/值格式:

[key]=[value]

在您的情况下,PHP 脚本似乎需要一个带有键“json”的参数,因此您发送的数据将类似于:

"json=" & s 

希望有帮助。

于 2013-06-29T14:58:40.043 回答