我正在尝试从我的c#代码中调用PHP文件。这是我的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("http://localhost") 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();
}
}
MessageBox.Show(json1);
我的问题是c#方法没有发送我的对象而我的php代码是
<?php
echo json_encode($_POST);
?>
请帮助
答案 0 :(得分:1)
$ _ POST并不理解json,因为我的评论指向SO上其他地方的解决方案(Google让生活更轻松)
以下是推荐使用的代码:
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
答案 1 :(得分:0)
问题是您的C#正在发送原始POST数据,而PHP $_POST
数组仅适用于URL编码的键/值对。
在PHP端,检索原始POST数据,绕过$_POST
数组。此外,JSON编码PHP方面的数据也没有意义,因为它已经是JSON。使用json_decode()
进行反向操作。
echo file_get_contents("php://input");