我正在尝试使用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代码
//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();
答案 0 :(得分:0)
您必须看看对C#的调用会返回给您吗?
我不知道C#,但我不认为必须在$ _POST变量中但在请求的正文部分中发送json。 在香草PHP中,您可以使用:
file_get_contents('php://input');