Код продукта, вызывающий сбой вызова web mvc api - PullRequest
0 голосов
/ 10 июля 2019

Я использую веб-API mvc5 для питания мобильного приложения в xamrian. По большей части вызовы веб-API работают на 100%, однако сегодня я столкнулся с ситуацией, когда произошел полный останов в коде продукта, вызвавший вызов к веб-API для сбоя.

Но сегодня у меня был такой код продукта, как этот TFNT1116.5, и вызов API не удался.

public async Task<StockWarehouseInfoBins> GetWarehouseBinsInformaiton(string ItemCode, string WarehouseName)
{

        List<StockWarehouseInfoBins> _result = new List<StockWarehouseInfoBins>();

        var uri = new Uri(string.Format(BaseUrl + Constants.BinDetails + ItemCode.Trim(), string.Empty));

        var response = await _client.GetAsync(uri);
        if (response.IsSuccessStatusCode)
        {
            var byteArray = await response.Content.ReadAsByteArrayAsync();

            var content = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);
            _result = JsonConvert.DeserializeObject<List<StockWarehouseInfoBins>>(content);
        }

        return _result.FirstOrDefault();

}

Мой клиент - это единица класса HTTP-клиента.

HttpClient _client;

Я думаю, что проблема заключается в полной остановке в коде продукта.

Это вызов, который он получает в моем контроллере MVC.

[HttpGet]
// GET: Warhouses/Details/5
public ActionResult BinDetails(string id)
{

   List<StockWarehouseInfoBins> result = new List<StockWarehouseInfoBins>();

   result = database.GetWarehouseDetails(id);
   return Json(result, JsonRequestBehavior.AllowGet);
}

И это моя информация о маршруте. Когда я проверяю вызов без кодов продуктов без полных остановок в них, он работает как положено и возвращает правильные данные JSON.

public static void RegisterRoutes(RouteCollection routes)
{
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

Это мой класс здесь.

 public class StockWarehouseInfoBins
 {
    public StockWarehouseInfoBins();
    public long? BinItemID { get; set; }
    public string BinName { get; set; }
    public long? WarehouseItemID { get; set; }
    public long? WarehouseID { get; set; }
    public string WarehouseName { get; set; }
    public decimal ConfirmedQtyInStock { get; set; }
    public decimal QuantityReserved { get; set; }
    public decimal QuantityAllocatedBOM { get; set; }
    public decimal QuantityAllocatedSOP { get; set; }
    public decimal QuantityAllocatedStock { get; set; }
 }

Я звоню выше в асинхронном методе. Какая информация о бине становится нулевой, когда полная остановка включена.

 StockWarehouseInfoBins binInfo = new StockWarehouseInfoBins();
 binInfo = await restServices.GetWarehouseBinsInformaiton(lblstockCode.Text, SouceWarehouseName);

Я предполагаю, что мне нужно URL-кодировать вызовы API, но есть ли способ сделать это на HTTP-клиенте, поэтому мне не нужно менять каждый вызов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...