Почему мой PHP веб-сайт не получает переменную, которую я отправляю POST из приложения Android Xamarin? - PullRequest
1 голос
/ 24 апреля 2020

Я не вижу результат, который я отправляю из приложения Xamarin Forms Visual Basi PHP в *1009* REST. В основном это то, что я делаю в Mainpage.xaml.cs:

protected override async void OnAppearing()
        {
            HttpClient client = new HttpClient();
            Uri uri = new Uri("https://www.miweb.com/prueba.php");
            Msj mensaje = new Msj { Mensaje = "PRUEBAAAAAA" };
            string json = JsonConvert.SerializeObject(mensaje);
            var content = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
            //HttpResponseMessage response = client.PostAsync(uri, content).Result;
            using (var response = await client.PostAsync(uri, content))
            {
            }

            base.OnAppearing();
        }

The class Msj:

    internal class Msj
    {
        public string Mensaje { get; internal set; }
    }

И это код PHP:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $input = $_POST;
    header("HTTP/1.1 200 OK");
    $file = fopen("app.txt", "w");
    fwrite($file, json_encode($input['Mensaje']) . PHP_EOL);
    fclose($file);
    exit();
}

Файл app.txt создан, но его содержимое равно «null» (без кавычек)

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Наконец-то я так решил, без JSON. Спасибо всем:

protected override async void OnAppearing()
{
    HttpClient client = new HttpClient();
    Uri uri = new Uri("https://www.miweb.com/prueba.php");
    var datos = new List<KeyValuePair<string, string>>
    {
        new KeyValuePair<string, string>("mensaje", "SOLVED!")
    };
    var content = new FormUrlEncodedContent(datos);
    using (var response = await client.PostAsync(uri, content))
    {
    }
    base.OnAppearing();
}
0 голосов
/ 24 апреля 2020

Для просмотра отправленных данных вы можете использовать:

print_r($_POST);

Из этого вы сможете определить, что отправляется / не отправляется, и изменить свой код оттуда.

...