HttpClient GetAsync 未按预期工作

2023-12-04

当使用 Postman 测试我的 Web API 时,我的 API 执行得很好!

当涉及到运行代码时HttpClient在我的客户端应用程序中,代码执行时没有错误,但在服务器上没有预期的结果。 可能会发生什么?

从我的客户端应用程序:

private string GetResponseFromURI(Uri u)
{
    var response = "";
    HttpResponseMessage result;
    using (var client = new HttpClient())
    {
        Task task = Task.Run(async () =>
        {
            result = await client.GetAsync(u);
            if (result.IsSuccessStatusCode)
            {
                response = await result.Content.ReadAsStringAsync();
            }
        });
        task.Wait();
    }
    return response;
}

这是 API 控制器:

[Route("api/[controller]")]
public class CartsController : Controller
{
    private readonly ICartRepository _cartRepo;

    public CartsController(ICartRepository cartRepo)
    {
        _cartRepo = cartRepo;
    }

    [HttpGet]
    public string GetTodays()
    {
        return _cartRepo.GetTodaysCarts();
    }

    [HttpGet]
    [Route("Add")]
    public string GetIncrement()
    {
        var cart = new CountedCarts();
        _cartRepo.Add(cart);

        return _cartRepo.GetTodaysCarts();
    }

    [HttpGet]
    [Route("Remove")]
    public string GetDecrement()
    {
        _cartRepo.RemoveLast();
        return _cartRepo.GetTodaysCarts();
    }


}

请注意,当从 Postman 调用时,这些 API 调用按预期工作。


你不应该将await与client.GetAsync一起使用,它是由.Net平台管理的,因为你一次只能发送一个请求。

像这样使用它

var response = client.GetAsync("URL").Result;  // Blocking call!

            if (response.IsSuccessStatusCode)
            {
                // Parse the response body. Blocking!
                var dataObjects = response.Content.ReadAsAsync<object>().Result;

            }
            else
            {
                var result = $"{(int)response.StatusCode} ({response.ReasonPhrase})";
               // logger.WriteEntry(result, EventLogEntryType.Error, 40);
            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpClient GetAsync 未按预期工作 的相关文章

随机推荐

  • 如何在继续之前暂停 shell 脚本一秒钟?

    我只找到了如何等待用户输入 然而 我只想暂停一下 以便我的while true不会让我的电脑崩溃 I tried pause 1 但它说 bash syntax error near unexpected token 1 如何做呢 Use
  • Tensorflow 引发错误:ImportError:无法导入名称“export_saved_model”

    好像 import tensorflow as tf 直接引发此错误 合作实验室链接 https colab research google com drive 1Jr0j I npKQxcQ1ggJQFHTqoJHmt9Bqk 抱歉 问题
  • windows csv 和 mac csv 有什么区别?

    我正在尝试使用此代码解析 csv 文件 if handle fopen csvFilePath r FALSE c 0 string while data fgetcsv handle 1000 FALSE if c gt 0 if dat
  • HttpUnit 是否已弃用/不活动/不支持?

    三年前 当我探索并研究 HttpUnit 时 我很喜欢它的功能 尽管在三年没有跟踪它之后 当我向我的同事建议基于它的解决方案时 他告诉我它已被弃用 apache 状态表明它处于活动状态 我在哪里找不到这是否属实 如果这是真的 我会感到震惊
  • Mac OS 和 Windows 之间的 exp() 精度

    我在这里得到了一个代码 当我在Win和Mac OS上运行它们时 结果的精度是不同的 任何人都可以帮忙吗 const double c 1 exp 2 0 double x 139 0 5 2282 0 x 1 exp 2 1 x c 结果都
  • 如何在数据库(Mongo)中进行左连接[重复]

    这个问题在这里已经有答案了 我是蒙戈新手 请帮我如何在 Mongo 中进行左连接 SQL语句 Select from TableA left Join TableB on TableA col1 TableB col1 AND TableB
  • 我可以继承 OpenERP 中的标准报告吗?

    我想更改 OpenERP 6 1 中的采购订单报告 我是否必须进入并更改购买模块 或者我可以创建一个新模块来继承标准报告并覆盖一些详细信息 您无法完全继承另一个报告并仅覆盖一些详细信息 但您可以替换标准报告并使其所有现有链接启动您的新报告
  • 在python中创建一个列来对数值进行分类

    我有一个名为 df 的 python 数据框 其中包含客户的 BMI 作为 bmi 列中的数字 我想在数据框中添加一个新列 称为 bmi cat 它是基于其数值的 BMI 类别 即 这就是我尝试过的 但没有成功 它不喜欢使用 for df
  • 如何从学说查询生成器获取部分结果

    我有一个产品实体 其中有一个数组作为属性 ORM OneToMany targetEntity Shopious MainBundle Entity ProductPicture mappedBy product cascade persi
  • 如何动态添加多个句柄到 jQuery 滑块

    我想做这个 在某些事件上向 jQuery 滑块添加句柄 该句柄应该有一个 id 以便当它滑动时 我可以访问它的值 有什么想法如何做到这一点 Here是 JSfiddle 中的代码 其中实现了带有两个手柄的滑块 我需要做的就是通过触发某些事件
  • 在堆上创建结构体?

    我被指示通过在保存源副本的堆上创建一个 String 结构来编写模型 strdup 我想我已经成功编码了 strdup 但我不确定我是否已经创建堆上的结构体 typedef struct String int length int capa
  • 带有子网格和本地数据的 JqGrid 在 IE9 中不起作用 - 抛出 - “SCRIPT600:此操作的目标元素无效”

    我是 JQGRID 的新手 我使用的是 4 7 1 版本 我正在尝试使用 SUBGRID 创建 JQGRID 该代码在 Google Chrome 中按预期工作 但我在 IE9 中收到下面提到的错误 SCRIPT600 Invalid ta
  • 将 .RData 文件加载到会话中,但在 Shiny 中未加载任何对象

    我在 R 中得到了分析结果 一个名为obj 并将其保存为 RData 文件obj result RData 现在在闪亮 在年初ui R文件 我把load obj results RData 这样每次运行 Shiny 时 这个对象都可以加载到
  • 手动滚动两个显示相同内容的 UICollectionView

    正如标题所示 我有一个UIViewController有两个UICollectionViews它们以水平方式显示相同的内容 主图一次显示一张照片 大拇指图一次显示多张照片 我已经覆盖了UIScrollViewDelegate方法并添加了一些
  • 当 CrawlerProcess 运行两次时,Scrapy 会引发 ReactorNotRestartable

    我有一些代码看起来像这样 def run spider name settings runner CrawlerProcess settings runner crawl spider name runner start return Tr
  • 串行化套接字

    我尝试序列化套接字 但它不起作用 正确的方法是什么 public class MySocket implements Serializable private Socket socket public MySocket Socket soc
  • 使用 dir 搜索文件 - 多次命中

    我有一个宏 它遍历文件夹并使用 dir 函数来查找活动文件夹中是否存在文件 并将文件名放入单元格中 问题是可能有两个或多个文件满足搜索 Dir subfolder Kommunesvar 如果有两个以 Kommunesvar 开头的文件 如
  • 为什么我的 li 元素之间有空格? [复制]

    这个问题在这里已经有答案了 我有一个水平显示的项目列表 我想在每个里周围创建一个边框 并使它们彼此相邻地突出 我创建了一个小测试来说明问题 在这里看到 ul class dashboard inline links li a href Oc
  • 复杂的数据库操作

    我为我的 ASP NET 应用程序绘制了一个非常简单的数据库设计 在一些帮助下 我成功地实现了我的设计 但我想将数据插入到该表中并从中检索 我的应用程序中一个非常重要的功能将需要某个记录的所有 7 个表中的所有信息 有时我需要让我的应用程序
  • HttpClient GetAsync 未按预期工作

    当使用 Postman 测试我的 Web API 时 我的 API 执行得很好 当涉及到运行代码时HttpClient在我的客户端应用程序中 代码执行时没有错误 但在服务器上没有预期的结果 可能会发生什么 从我的客户端应用程序 privat