1
私はxamarinフォームを使用してモバイルアプリケーションを作成しています。しかし、私は次の例外を取得:ステータスコード500、ReasonPhrase: '内部サーバーエラー'、バージョン:1.1、コンテンツ:System.Net.Http.StreamContent
ステータスコード500、のreasonPhrase: '内部サーバーエラー' バージョン:1.1、内容:System.Net.Http.StreamContent、
を実行しようとしますがpostAsync
。どこが間違っているのか分かりません。
private async void btnCheckout_OnClicked(object sender, EventArgs e)
{
ConstantCS constant = new ConstantCS();
var client = new HttpClient();
client.BaseAddress = new Uri(constant.URLBaseAddress);
//Store persive data locally
int MyOrdersID_ = int.Parse(Application.Current.Properties["MyOrdersID"].ToString());
for (int i = 0; i < orderItemList.Count; i++)
{
//string postdataJson = JsonConvert.SerializeObject(new { UserID = nric.Text.Trim(), Password = pin.Text.Trim() });
string postJson = JsonConvert.SerializeObject(new { orderID = MyOrdersID_, itemID = orderItemList[i].Item_Id, itemName = orderItemList[i].orderItem_Name, orderQty = orderItemList[i].orderItem_Quantity, itemRequest = orderItemList[i].orderItem_SpecialReq, specialRequest = orderItemList[i].orderItem_OtherReq , itemPrice = orderItemList[i].orderItem_IndividualPrice});
var content = new StringContent(postJson, Encoding.UTF8, "application/json");
//HttpResponseMessage orderItemResponse = await client.PostAsync("WebServices/Orders.svc/CreateOrderItems", content);
HttpResponseMessage orderItemResponse = new HttpResponseMessage();
orderItemResponse = client.PostAsync("WebServices/Orders.svc/CreateOrderItems", content).Result;
if (orderItemResponse.IsSuccessStatusCode)
{
await DisplayAlert("Success", "Order item response = " + orderItemResponse.ToString(), "OK");
}
else
{
await DisplayAlert("Failed", "Order item response = " + orderItemResponse.ToString(), "OK");
}
//var result = await response.Content.ReadAsStringAsync();
}
DateTime now = DateTime.Now;
string postOrderJson = JsonConvert.SerializeObject(new { custID = 1, orderDateTime = now, orderID = MyOrdersID_, orderTotalPrice = totalCost });
var OrderContent = new StringContent(postOrderJson, Encoding.UTF8, "application/json");
HttpResponseMessage orderResponse = await client.PostAsync("WebServices/Orders.svc/CreateOrder", OrderContent);
if (orderResponse.IsSuccessStatusCode)
{
await DisplayAlert("Success", "Order Response = " + orderResponse.ToString(), "OK");
}
else
{
await DisplayAlert("Failed", "Order Response = " + orderResponse.ToString(), "OK");
}
await Navigation.PushModalAsync(new MasterDetailPageFood());
//Display an alert and then go back to the first page
await DisplayAlert("Thank you for your order", "Your Order will be made shortly", "OK");
}
HTTP 500エラーと見られますが、あなたのコードにエラーはないと思います。 500はエラーがサーバー側にあることを意味します。もちろん、それはあなたが言うことが難しいこのビットを引き起こすいくつかの違法な値を供給していることを意味する可能性があります。 –
@GeraldVersluis thanks私は不正な値を供給していたかどうかをチェックするために値をハードコーディングしようとしましたが、それでも同じエラーが出ました。 –
なお、HTTP 500エラーはサーバー側のエラーを示します。だから、そのコードがあなたによって維持されていれば、私はそこに最初に目を通すか、そのコードの開発者に連絡します –