【问题标题】:How to handle PostJsonAsync() call如何处理 PostJsonAsync() 调用
【发布时间】:2017-05-19 11:02:13
【问题描述】:

目前我有第 3 方 WebApi,它使用 Flurl 构建器进行以下外部调用。

 await _client.Url.ToString().PostJsonAsync(data);

我正在尝试使用这样的端点处理响应:

[HttpPost]
public void HandleResponse(HttpResponseMessage response)
{
}

响应消息的状态为 OK,但有 Content and Headers = null

我该如何正确处理?

【问题讨论】:

  • 你问的是如何从同步上下文中调用异步方法?
  • 相反,我想创建一个端点来处理client 请求
  • 我认为您将 requestsresponses 混淆了。那不应该是HttpRequestMessage吗?你的 API 不应该返回响应吗?
  • 对端点的响应有一个空正文,因为端点有一个void 返回类型并且不做任何事情。这能回答你的问题吗?
  • 鉴于您对问题中的代码所做的语义更改,目前还不清楚您正在构建什么。第一个代码 sn-p 向某个资源发出 HTTP 请求。第二个代码 sn-p 是什么?它与第一个有什么关系?

标签: c# asp.net .net asp.net-mvc flurl


【解决方案1】:

这个 API 端点对我没有任何意义:

[HttpPost]
public void HandleResponse(HttpResponseMessage response)
{
    //...
}

端点将处理请求返回响应,而不是相反。更像是这样的:

[HttpPost]
public HttpResponseMessage HandleResponse(HttpRequestMessage request)
{
    //...
}

当某物联系 API(或任何类型的服务器,实际上)时,它向该 API 发送请求。该 API 接收 request 并返回 response。这两个词的语义几乎描述了这个过程,保持它们的正确性非常重要。

这样考虑...如果有人问你一个问题,你收到的是一个问题。不是答案。你发回给那个人的就是答案。

【讨论】:

  • 谢谢。我刚刚将参数更改为 HttpRequestMessage 但似乎即将到来的请求是空的 null 内容和标题
猜你喜欢
  • 1970-01-01
  • 2016-05-13
  • 2011-03-23
  • 2019-03-13
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多