- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
ASP.NET 中的这些类有什么区别?我发现这些类之间没有继承关系。
下面的代码返回一个 HttpRequestWrapper
的实例,它是一个
HttpRequestBase
并且有一个
HttpRequest
HttpRequestMessage request = ...;
HttpRequestBase reqBase = (request.Properties["MS_HttpContext"] as HttpContextWrapper).Request;
// do somthing with reqBase.Cookies
微软似乎想在从 HttpRequestMessage 获取 cookie 时惹恼我们。
是否保证 request.Properties["MS_HttpContext"]
永远不会为空?
或者认为ajax 请求是在ApiController 的一个 Action 中处理的。我可以通过两种不同的方式访问客户端的 IP。
var ip = (request.Properties["MS_HttpContext"] as HttpContextWrapper).Request.UserHostAddress
var ip = HttpContext.Current.Request.UserHostAddress
这两者有什么区别?
或者一般来说,我可以通过不同的方式访问相同的请求/响应数据,例如 Cookie、 header 、请求者信息等。什么时候使用哪个?我们可以说“如果它是一个 ajax 请求,HttpRequest 不能保证正常工作,因为缺少某些东西,所以对于 ajax 请求,我们应该改用 HttpRequestMessage”?
最佳答案
HttpRequest出现在 Page 上和 UserControl类作为 GET-only 属性。同样,它自己的大部分属性也是 GET-only(参见 1)。 ASP.NET 页面使用此类来获取有关传入的 http 请求的信息,例如读取客户端 IP、cookie、查询字符串等等。重要的是,它是自 .NET 1.1 以来就存在的“旧”System.Web 程序集的一部分
HttpRequestMessage ,另一方面,是 .NET 4.5 中的新增功能。它是 System.Net 的一部分.客户端和服务都可以使用它通过 HTTP 创建、发送和接收请求和响应。它取代了 HttpWebRequest ,在 .NET 4.5 中已过时
在 HttpRequestBase 和 HttpRequestWrapper 上,我能做的最好的就是引用 docs
The HttpRequestWrapper class derives from the HttpRequestBase class and serves as a wrapper for the HttpRequest class. This class exposes the functionality of the HttpRequest class and exposes the HttpRequestBase type. The HttpRequestBase class enables you to replace the original implementation of the HttpRequest class in your application with a custom implementation, such as when you perform unit testing outside the ASP.NET pipeline.
关于c# - HttpRequest 与 HttpRequestMessage 与 HttpRequestBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718468/
我正在尝试发送 json “样式”字符串通过 HttpResponseMessage . 我创建了以下方法,希望能够成功发送响应消息。 class Foo { /// /// Ven
我有一个 Controller Action : [HttpPost] [EnableQuery] [ODataRoute("PostData")] public async Task PostDat
我的任务是整合 Amazon Gift Codes On Demand (AGCOD)安静的 API。我们需要使用 Signature Version 4 签署我们的请求,由他们执行的操作 AWS S
我有一个向服务器发送 POST 请求的方法。该请求在 HttpRequestMessage 对象中定义。 然而,如果服务器返回一些可重试错误,我想重试,如下面的代码: using (var reque
我正在尝试使用此答案中概述的方法克隆请求: https://stackoverflow.com/a/18014515/406322 但是,如果原始请求有内容,我会得到一个 ObjectDisposed
在 winrt 中是否有任何内置函数将摘要身份验证与 HttpRequestMessage 相关联?还是我必须使用其他类才能执行此任务? 谢谢。 最佳答案 我正在使用 HttpClient对于 Htt
我正在尝试发送一个将其用户代理设置为带有冒号的内容的请求,但是 HttpRequestMessage提示冒号是无效字符。 确切的代码看起来像这样: HttpClient client = new Ht
假设我有一个像这样构建的 HttpRequestMessage 对象: var request = new HttpRequestMessage(HttpMethod.Post, uploadUrl)
我在 ASP.NET Core 中有一个 Web API,该方法具有以下签名: [HttpPost] public HttpResponseMessage Foo(HttpRequestMessage
我有两个 API Controller ,位于两个不同的文件夹中,它们具有 GetEvents() 操作: V1 EventsController V2 EventsController 我希
我刚刚读到关于 web API model validation 的内容它有这个示例,但是下面提供的示例代码将无法编译,因为 CreateErrorResponse() 不存在于 HttpReques
将 http web api 请求转发到另一台服务器的最佳方法是什么? 这是我正在尝试的: 我有一个 .NET 项目,当我收到某些 API 请求时,我想修改请求,将其转发到另一台服务器,然后返回第二台
我正在处理一个 API,该 API 需要我设置 header application/json;masked=false 才能隐藏一些信息。使用 设置标题时 var request = new Htt
这里我有一个 HttpRequestMessage,我正在尝试向它添加一个客户端证书,但似乎找不到如何执行此操作。有没有人做过这样的事情? HttpRequestMessage request = n
有人有序列化 HttpRequestMessage 对象的经验吗?尝试使用 Json.net,它部分有效。也就是说,JsonConvert.DeserializeObject 由于构造问题而失败 St
我想多次发送完全相同的请求,例如: HttpClient client = new HttpClient(); HttpRequestMessage req = new HttpRequestMess
HttpRequestMessage.Properties的目的是什么? ? 我想知道它是否为我的应用程序提供了一些有用的东西。 最佳答案 在 Web Api 中它包含一些特殊的标志:http://w
我有一个具有以下操作的 MVC API Controller 。 我不明白如何阅读消息的实际数据/正文? [HttpPost] public void Confirmation(HttpRequest
如何将 IP 地址添加到 HttpRequestMessage? 我正在为 Web.API 应用程序编写单元测试,我有一个 AuthorizeAttribute 来检查调用者的 IP 地址 -
我实现了 POST Rest 服务来将文件上传到我的服务器。我现在遇到的问题是我想按类型限制上传的文件。举例来说,我只想允许上传 .pdf 文件。 我试图做的是 Task ta
我是一名优秀的程序员,十分优秀!