C # не отправляет запрос JSON в PHP - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь отправить данные из c # в PHP, используя JSON.

Я вижу 'NULL' на странице PHP.

Вот мой 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 # отправлял данные с использованием JSON с помощью REST API (HTTP Request).

Затемиспользуя PHP;Я получу данные и сохраню в MySql Table.

Но PHP просто показывает 'Null'

Что я делаю не так.

Спасибо

EDIT

DisplayAlert, который я вижу в c #, показывает строку, которую он передает PHP.

c # предупреждение о строке, которую он передает PHP

На веб-странице PHP отображается строка (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 голосов
/ 06 марта 2019

Вы должны посмотреть, что вам возвращает C #, верно?

Я не знаю C #, но я не думаю, что json должен отправляться в переменной $ _POST, а в части тела запроса. В ванильном PHP вы можете получить его:

file_get_contents('php://input');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...