У меня возникает внутренняя ошибка сервера 500 при отправке запроса POST.
Код:
private async void btnRegister_Clicked(object sender, EventArgs e)
{
Users user = new Users()
{
mem_account_no = entId.Text,
mem_acc_username = entUsername.Text,
mem_acc_password = entPassword.Text
};
//signup.Text = user.mem_account_no;
var json = JsonConvert.SerializeObject(user);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpClient client = new HttpClient();
var result = await client.PostAsync("http://ropenrom24-001-site1.etempurl.com/potangina/final/Restserver/index.php/users/insert", content);
if (result.StatusCode == System.Net.HttpStatusCode.Created)
{
await DisplayAlert("Success", "Success" , "OK");
}
else
{
await DisplayAlert("Failed", "" + result, "OK");
}
}
Я думаю, что проблема здесь в сериализации объекта (пользователя) в json, потому что я вижу этот Content-Type: txt/html; при отображении var result, а в форме Windows он показывает Content-Type: application/json;. Кстати, у меня такой же код с моей формой Anrdoid и Windows.
Я голосую за закрытие вопроса, так как мы не можем вам с этим помочь.
спасибо, сэр, но почему это работает в моей форме Windows? и когда я передаю var json метке, он пустой
Без понятия. Код запроса (код, который вы разместили) в целом выглядит правильным. Я говорю «в целом», имея в виду, что вы делаете правильные вещи для публикации JSON в API, который принимает JSON. Если он работает в Windows, но не работает на Android, вам следует сравнить свои запросы, чтобы узнать, чем они отличаются.
Отвечая на ваш комментарий edit: Что вы имеете в виду «пустой»? Вы имеете в виду, что все свойства пусты, или это просто пустая строка (""). Если все свойства пусты, скорее всего, ваша проблема связана с ent****.Text. Если можете, выполните отладчик и все проверьте.
У Microsoft есть документы о том, как отлаживать код Xamarin (на случай, если вы новичок в отладке).
попробуйте, это может помочь вам var nvc = new List<KeyValuePair<string, string>>(); nvc.Add(new KeyValuePair<string, string>("mem_account_no ", entId.Text)); var req = new HttpRequestMessage(HttpMethod.Post,"api/Vendor/AccountEnquiry"){ Content = new FormUrlEncodedContent(nvc) }; var res = await client.SendAsync(req);
да его пусто. когда я передаю строку json на ярлык, он показывает это {}





Я не собираюсь здесь снисходить, но 500 Internal Server Error означает, что сервер (ropenrom24-001-site1) обнаружил ошибку при обработке вашего запроса. Тип контента отклик не связан с контентом, который вы публикуете в службе, каким-либо образом, формой или формой. Причина, по которой вы получаете
text/html, вероятно, заключается в том, что сервер выдает ошибку и возвращает текстовое сообщение, возможно, с подробностями об ошибке. Вам следует проверить ответ, чтобы узнать, содержит ли он дополнительную информацию, или связаться с поставщиком услуг, чтобы узнать, почему вы получаете сообщение об ошибке.