Я пытаюсь сделать что-то, что кажется простым: отправить запрос JSON в PHP-скрипт на моем веб-сервере и получить ответ. Я могу запросить сайт без проблем, я могу прочитать ответ без проблем, но по какой-то причине он отказывается отправлять содержимое моих данных JSON.
string url = "https://www.exampleserver.com/examplescript.php";
HttpClient client = new HttpClient(new Xamarin.Android.Net.AndroidClientHandler());
client.BaseAddress = new Uri(url);
string jsonData = @"{""key1"" : ""data1"",""key2"" : ""data2"",""key3"" : ""data3""}";
HttpContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(url, content);
string result = await response.Content.ReadAsStringAsync();
responsebox.Text = result;
Каждый раз, когда я запускаю его, содержимое responsebox.Text заменяется содержимым страницы по умолчанию, явно указывая на отсутствие содержимого в данных $_POST. (Даже проверил $_REQUEST, чтобы убедиться, что он не отображается как GET) .
Я знаю, что это должно быть что-то простое, но я не могу этого найти.
См. Ответ это о стороне PHP.
Пожалуйста, проверьте $HTTP_RAW_POST_DATA в PHP и $json = file_get_contents('php://input'); для проверки данных. Первый шаг - увидеть данные на стороне сервера.
Спасибо вам всем! Мне не хватало переключения на использование php://input на стороне сервера. Первоначальная версия клиента была веб-версией, поэтому я думал, что все данные JSON будут отображаться через $_POST. Получение данных с php://input исправило все, что мне не хватало.





Код отправки выглядит нормально, если вы пытаетесь отправить JSON, а не сообщение формы.