各位尊敬的SO成员,
我正在尝试使用.NET MAUI
构建android
应用程序。我尝试通过PHP API使用HttpClient.PostAsync
将内容保存到MySQL
数据库,但我无法使其工作(响应是成功,但数据未保存到表中),而当我尝试使用POSTMAN测试PHP
Api时,一切正常,并且能够保存到所需的表中。.NET MAUI
代码
EmployeeData emp = new EmployeeData();
emp.emp_pin= EmpID.Text;
HttpClient cl = new HttpClient();
string js = JsonSerializer.Serialize(emp);
StringContent httpContent = new StringContent(js, Encoding.UTF8, "application/json");
var response = cl.PostAsync(Url, httpContent).Result;
if (response.IsSuccessStatusCode)
{
DisplayAlert("Success", "Success Record Your Data.", "OK");
}
else
{
DisplayAlert("Fail", "Please Try Again.", "OK");
}
模型
public class EmployeeData
{
public string emp_pin{ get; set; }
}
PHP
API
<?php
require_once('dbhelper.php');
$json = file_get_contents('php://input');
$data = json_decode($json, true);
$emppin=$data['emp_pin'];
$sql = $conn->prepare("INSERT INTO test (emp_pin) VALUES (?)");
$sql->bind_param('s', $emppin);
$sql->execute();
if ($sql) {
echo json_encode(array('RESPONSE' => 'SUCCESS'));
} else {
echo json_encode(array('RESPONSE' => 'FAILED'));
}
使用POSTMAN,数据成功保存到表中。
使用JSON Visualizer,
请给我指出我在哪一部分犯了错误。
1条答案
按热度按时间8xiog9wr1#
emp.emppin
将在结果JSON - demo中序列化为名为emppin的属性:https://dotnetfiddle.net/ywjm0W。但是在PHP中,您已经编写了一个名为emp_pin
的属性,这就是您从Postman发送的内容。因此,向PHP发送具有不同属性名称的JSON对象将导致PHP出现问题- demo:https://3v4l.org/RWCUK因此,您可以在C#类中重命名该属性,使其符合PHP的预期:
第二,改变
到