0

我正在从 asp.net web 应用程序中使用 web api,现在我遇到了这个问题。我使用我的 web api 只是为了从我的数据库中检索数据并使用 jwt 来保证它的安全性。另一方面,我有这个使用这个 web api 的 mvc web 应用程序。当我运行我的 web-api 时,一切都好,我可以轻松地检索我想要的数据,但是从我的 web 应用程序中发生的情况却不同。有人可以帮我熟悉序列化以及为什么它没有从我的数据库中读取数据吗?当断点到达“”行时弹出错误 readTask.Wait();

这是我的 WebApi 控制器:

public IHttpActionResult GetById (string id)
{
    ConnectionString();
    con.Open();
    SqlCommand com = new SqlCommand("oid_validation", con);
    com.CommandType = CommandType.StoredProcedure;
    com.Parameters.Add(new SqlParameter("@oid", id));
    SqlDataReader dr = com.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(dr);
    dt.TableName = "mytable";
    return Ok(dt);
}

这是我的模型类,它在我的 api 和我的网络应用程序上都是相同的。

public class v_websearch 
{
public system.guid ID {get; set;}
public system.DateTime DateSale {get; set;}
public system.DateTime From {get; set;}
public system.DateTime To {get; set;}
}

这是我用于使用 api 数据的 web 应用控制器:

    public async Task<ActionResult> Confirm(string id)
    {
                var token = (string)Session["access_token"];
                V_WebSearch dt = null;
                using (var client2 = new HttpClient())
                {
                    client2.BaseAddress = new Uri("http://localhost:63443/api/");
                    client2.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
                    var responseTask = client2.GetAsync("default/" + id);

                    var result = responseTask.Result;

                    #region Error Handlers
                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsAsync<V_WebSearch>();
                        readTask.Wait();
                        dt = readTask.Result;
                        return View(dt);
                    }
               }
      }
4

1 回答 1

0

我喜欢 SOLID 原则!xD。

  • 您可以看到 GetById 的 Http 响应(查看 json 响应),这似乎不是您所期望的。

  • 对于HttpClient尝试GetFromJsonAsync方法。

于 2021-08-31T13:00:20.137 回答