2016-11-15 57 views
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"); 
} 
+1

看到它是一個HTTP 500錯誤我不認爲這個錯誤是在你的代碼中。 500意味着錯誤在服務器端。當然,這可能意味着你提供了一些導致這一點的非法值,這很難說。 –

+0

@GeraldVersluis謝謝我試着對這些值進行硬編碼以檢查我是否提供了非法值,但它仍然給我提供了相同的錯誤。 –

+0

但是,HTTP 500錯誤表示服務器端錯誤。因此,如果代碼也由您維護,我會先去那裏看看,或聯繫該代碼的開發人員 –

回答

0

的錯誤是在你的Web服務。您應該調試您的Web服務並解決那裏的問題。

相關問題