【发布时间】:2016-01-29 09:34:50
【问题描述】:
我的目的是将 JSON 从 C# 发送到 PHP,然后在 PHP 端进一步解码以用于我的目的。
PHP端的错误是:
警告:json_decode() 期望参数 1 是字符串,数组在第 24 行的 /home3/alsonsrnd/public_html/test/sync.php 中给出
我正在使用以下代码使用 C# 将 JSON 发送到我的 PHP 代码:
private void sendData()
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://alnnovative.com/test/sync.php");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"user\":\"test\"," +
"\"password\":\"bla\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
在 PHP 上,我使用斜杠和 json_decode() 来解码 JSON。我的 PHP 代码给出了错误,即接收到的字符串是一个数组而不是 JSON,因此它不能使用 json_decode 对其进行解码。可能是什么原因?当我从 C# 发送正确格式的 JSON 时
我的 PHP 代码是:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$json=$_POST;
if (get_magic_quotes_gpc()){
$json = stripslashes($json);
}
//Decode JSON into an Array
$data = json_decode($json);
}
【问题讨论】:
-
它存在于代码中。字符串 json=.....
-
是错字吗 - screencast.com/t/7bc2MCQpzko4?似乎变量的名称不匹配。
-
你能在你的 PHP 服务器上添加一个调试行来打印它接收到的 JSON 吗? (斜线剥离前后)
-
我们能看到PHP代码吗?
-
看这里的第一个答案-stackoverflow.com/questions/13000386/…