我在 .netstandard 库中工作,因为它应该在 .NetFramework 4.7 和 .NetCore 中工作。在该库中,我有一个方法接收 HttpRequest 对象,使用查询字符串、内容、内容类型等处理请求并返回 HttpResponse。
我试过使用 HttpRequestMessage 和 HttpResponseMessage,但在 .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 中使用 HttpResponseMessage
或 HttpResponse
类型,然后使用序列化来处理您定义的数据结构中的请求/响应数据。
然后,您的 Controller 的方法将不必处理 HTTP 特定的库,但您可以在 IOcspResponder
定义中定义和使用的数据结构。
查看 this answer有关此设置的更多详细信息。
查看 this answer有关序列化的更多详细信息和示例。
关于c# - 在 .netstandard 2 中使用哪个 HttpRequest 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971070/