gpt4 book ai didi

c# - 通过 C# RESI API 传递 Json 后,PHP 网页显示空字符串

转载 作者:行者123 更新时间:2023-11-29 16:13:44 25 4
gpt4 key购买 nike

我已经问过这个问题,但需要进一步的帮助。 c# is not sending json request to PHP

我正在尝试使用 JSON 和 REST API HTTP 请求将数据从 C# 发送到 PHP 网页。

在 PHP 页面上我看到“String (0)”

c# 代码

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://scs.agsigns.co.uk/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

$content = file_get_contents("php://input");

var_dump($content);

在 c# 中我收到此警报

c# display alert message

在 PHP 网页中,我看到以下内容

PHP page shows string(0)

我想要获取应用程序发送的数据并将其保存到 MySql 中。

编辑

我修改了PHP文件代码以将数据保存在MySQL中。

我收到错误

注意:尝试在第 16 行获取 C:\inetpub\scs\test.php 中非对象的属性“名称”

这是我的 PHP 代码。

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

$obj = json_encode($content);

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


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

最佳答案

您应该使用 HttpClient 而不是 HttpWebRequest

使用 HttpClient 时,您的请求将如下所示

public async void SendUserDataToServer()
{
user user = new user();
{
user.firstname = "aaaa";
user.secondname = "aaaaaaaaaaa";
user.email = "aaa";
user.phonenumber = "aaa";
};
string json = JsonConvert.SerializeObject(user);
using (var client = new HttpClient())
{
var response = await client.PostAsync(
"https://scs.agsigns.co.uk/test.php",
new StringContent(json, Encoding.UTF8, "application/json"));
}
DisplayAlert("Alert", json, "OK");
}

引用:this

关于c# - 通过 C# RESI API 传递 Json 后,PHP 网页显示空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55022437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com