【问题标题】:call Api from server side not in client side从服务器端调用 Api 而不是在客户端
【发布时间】:2019-12-14 21:34:07
【问题描述】:

如何从服务器端调用 Request Get (Api)。

这里是服务器端

public string GetAllBook()
    {
        bookAssembly bookassembleur = new bookAssembly();
        bookList = bookassembleur.GetBooks();
    }

这里是 Api 请求

 public List<Book> Get()
        {
            BookAssembly searchallbook = new BookAssembly();
            return searchallbook.GetBooks();


        bookAssembly bookassembleur = new bookAssembly();
        bookList = bookassembleur.GetBooks();
        DataTable dt = new DataTable();
        if (dt.Columns.Count == 0)
        {
            dt.Columns.Add("ID");
            dt.Columns.Add("Title");
            dt.Columns.Add("Price");
            dt.Columns.Add("Author");
            dt.Columns.Add("Qauntite");
            dt.Columns.Add("Categorie");
        }
        foreach (Book book in bookList)
        {
            DataRow NewRow = dt.NewRow();
            NewRow[0] = book.ID;
            NewRow[1] = book.Title;
            NewRow[2] = book.Price;
            NewRow[3] = book.Author;
            NewRow[4] = book.Qauntite;
            NewRow[5] = book.Categorie.Name;
            dt.Rows.Add(NewRow);
        }
        gvBook.DataSource = dt;
        gvBook.DataBind();
        return "";

    }

我想删除 bookList = bookassembleur.GetBooks() ana call api

【问题讨论】:

    标签: asp.net api


    【解决方案1】:

    您必须使用HttpClient 访问它。

    例如

    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("<your_api_path>");
        var response= client.GetAsync("GetAllBook");
        response.Wait();
    
        BookAssembly searchallbook = response.Result;
    
    }
    

    附:这不是运行代码,只是一个想法。

    【讨论】:

      【解决方案2】:
        public string GetAllBook()
               {
                  DataTable dt = new DataTable();
                  using (var client = new HttpClient())
                  {
                      client.BaseAddress = new Uri("http://localhost:6735/api/book");
                      //HTTP GET
                      var responseTask = client.GetAsync("Book");
                      responseTask.Wait();
      
                      var result = responseTask.Result;
                      if (result.IsSuccessStatusCode)
                      {
                          var readTask = result.Content.ReadAsAsync<Book[]>();
                          readTask.Wait();
                          var Books = readTask.Result;
                          if (dt.Columns.Count == 0)
                          {
                              dt.Columns.Add("ID");
                              dt.Columns.Add("Title");
                              dt.Columns.Add("Price");
                              dt.Columns.Add("Author");
                              dt.Columns.Add("Qauntite");
                              dt.Columns.Add("Categorie");
                          }
                          foreach (Book book in Books)
                          {
                              DataRow NewRow = dt.NewRow();
                              NewRow[0] = book.ID;
                              NewRow[1] = book.Title;
                              NewRow[2] = book.Price;
                              NewRow[3] = book.Author;
                              NewRow[4] = book.Qauntite;
                              NewRow[5] = book.Categorie.Name;
                              dt.Rows.Add(NewRow);
                          }
                      }
                  }
                  gvBook.DataSource = dt;
                  gvBook.DataBind();
                  return "";
      
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-08
        • 1970-01-01
        • 2020-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多