c# - 在 .netstandard 2 中使用哪个 HttpRequest 类?

标签 c# .net httprequest .net-standard-2.0

我在 .netstandard 库中工作,因为它应该在 .NetFramework 4.7 和 .NetCore 中工作。在该库中,我有一个方法接收 HttpRequest 对象,使用查询字符串、内容、内容类型等处理请求并返回 HttpResponse。

我试过使用 HttpRequestMessageHttpResponseMessage,但在 .NetCore API 中,我们没有这些类。在这种情况下,哪个类最适合用于 HttpRequest 和 HttpResponse?

例子:

public interface IOcspResponder
{
    Task<HttpResponseMessage> Respond(HttpRequestMessage httpRequest);
}

客户端将实现一个 Controller 并按以下方式使用该库:

[RoutePrefix("api/ocsp")]
public class OcspController : Controller
{
    [Route("{encoded}"]
    public Task<HttpResponseMessage> Get(string encoded)
    {
        return await OcspResponder.Respond(Request);
    }

    [Route("")]
    public Task<HttpResponseMessage> Post()
    {
        return await OcspResponder.Respond(Request);
    }

    private IOcspResponder OcspResponder { get; }

    public OcspController(IOcspResponder ocspResponder)
    {
        OcspResponder = ocspResponder;
    }
}

最佳答案

为什么需要在 IOcspResponder 中处理 HttpResponseMessage 类型?

您可以仅在您的 Controller 中使用 HttpResponseMessageHttpResponse 类型,然后使用序列化来处理您定义的数据结构中的请求/响应数据。

然后,您的 Controller 的方法将不必处理 HTTP 特定的库,但您可以在 IOcspResponder 定义中定义和使用的数据结构。

查看 this answer有关此设置的更多详细信息。

查看 this answer有关序列化的更多详细信息和示例。

关于c# - 在 .netstandard 2 中使用哪个 HttpRequest 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971070/

相关文章:

c# - 等待按钮点击

json - 如何在plsql中以json形式发送POST请求

dart - Dart-打印所有响应标题

c# - 通过电子邮件发送带有长名称和重音的附件

c# - 如何获取操作系统名称

c# - 将 TimeSpan 数据类型转换为 DateTime?

c# - 通过 POST httprequest 传输文件到 hololens(错误 429)

c# - 如何使用 Linq 合并两个 C# 对象

c# - "Assembly Same Simple Name already been imported"错误

c# - Xamarin.Forms 中的可为 Null 的 TimePicker