C#没有将JSON请求发送到PHP

时间:2019-03-06 09:58:45

标签: c# php mysql json rest

我正在尝试使用JSON将数据从c#发送到PHP。

我在PHP页面上看到“ NULL”。

这是我的c#HTTP请求,应将json请求发送到PHP网页。

        user user = new user();
        {
            user.firstname = "aaaa";
            user.secondname = "aaaaaaaaaaa";
            user.email = "aaa";
            user.phonenumber = "aaa";
        };
        string json = JsonConvert.SerializeObject(user);
        HttpWebRequest request = WebRequest.Create("https://localhost/test.php") as HttpWebRequest;
        request.ContentType = "application/json";
        //request.Accept = "application/json, text/javascript, */*";
        request.Method = "POST";
        using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
        {
            writer.Write(json);
        }
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        Stream stream = response.GetResponseStream();

        string json1 = "";

        using (StreamReader reader = new StreamReader(stream))
        {
            while (!reader.EndOfStream)
            {
                json1 += reader.ReadLine();
            }
        }
        DisplayAlert("Alert", json1, "OK");

我有PHP“ test.php”,其中包含以下代码。

<?php

echo json_encode($_POST);


?>

运行c#函数时;我没有任何错误。

然后我刷新网页,并显示“ NUll”

我想实现的是c#使用REST API(HTTP请求)使用JSON发送数据。

然后使用PHP;我将获取数据并将其保存在MySql表中。

但是PHP仅显示'Null'

我做错了。

谢谢

编辑

我在c#中看到的DisplayAlert显示了它传递给PHP的字符串。

c# alert of string which it passes to PHP

PHP webpage shows string (0)

PHP代码

//Receive the RAW post data.
$content = file_get_contents("php://input");

$obj = json_encode($content);



$insert_stmt = $mysqli_scs->prepare("INSERT INTO test (name,address) VALUES (?,?)");
$name =$content->{'name'};
$address = $obj->{'address'};


$insert_stmt->bind_param("ss", $name, $address);
//Execute the statement
$insert_stmt->execute();

1 个答案:

答案 0 :(得分:0)

您必须看看对C#的调用会返回给您吗?

我不知道C#,但我不认为必须在$ _POST变量中但在请求的正文部分中发送json。 在香草PHP中,您可以使用:

file_get_contents('php://input');