IHttpSysRequestPropertyFeature.TryGetRequestProperty 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 HttpQueryRequestProperty Windows API 从HTTP.SYS读取任意HTTP_REQUEST_PROPERTY值。
public virtual bool TryGetRequestProperty(int propertyId, ReadOnlySpan<byte> qualifier, Span<byte> output, out int bytesReturned);
abstract member TryGetRequestProperty : int * ReadOnlySpan<byte> * Span<byte> * int -> bool
override this.TryGetRequestProperty : int * ReadOnlySpan<byte> * Span<byte> * int -> bool
Public Overridable Function TryGetRequestProperty (propertyId As Integer, qualifier As ReadOnlySpan(Of Byte), output As Span(Of Byte), ByRef bytesReturned As Integer) As Boolean
参数
- propertyId
- Int32
要查询的HTTP_REQUEST_PROPERTY标识符。 支持的一组值由 HTTP_REQUEST_PROPERTY 枚举 http.h定义;调用方负责分析使用相应的本机结构返回 output 的字节。
- qualifier
- ReadOnlySpan<Byte>
可选属性特定的限定符字节。 为不需要限定符的属性传递空范围;调用基础 API 时,它将映射到 null 指针。
- bytesReturned
- Int32
返回写入到 output的字节数。
如果 output 太小(或为空),则返回保存该值所需的缓冲区大小。
返回
如此 如果属性已成功读入 output。
如果 output 大小不够大,则为 False,无法容纳值;在这种情况下 bytesReturned ,包含所需的缓冲区大小。
对于任何其他失败,将引发异常。
例外
除ERROR_INSUFFICIENT_BUFFER或ERROR_MORE_DATA之外的任何 HttpSys 错误。
如果已安装Windows HTTP 服务器 API 不支持 HttpQueryRequestProperty。
注解
如果所需的缓冲区大小在前面未知,请先使用空 output 调用此方法以检索所需大小 bytesReturned,然后分配该多字节并重试查询。