Dil

IHttpSysRequestPropertyFeature.TryGetRequestProperty Yöntem

Tanım

HttpQueryRequestProperty Windows API'sini kullanarak HTTP.SYS rastgele bir HTTP_REQUEST_PROPERTY değeri okur.

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

Parametreler

propertyId
Int32

Sorguya HTTP_REQUEST_PROPERTY tanımlayıcı. Desteklenen değerler kümesi içindeki http.hsabit listesi tarafından HTTP_REQUEST_PROPERTY tanımlanır; çağıran, karşılık gelen yerel yapıyı kullanarak döndürülen output baytları ayrıştırmaktan sorumludur.

qualifier
ReadOnlySpan<Byte>

İsteğe bağlı özelliğe özgü niteleyici baytları. Niteleyici gerektirmeyen özellikler için boş bir span geçirme; temel alınan API çağrılırken null işaretçiyle eşlenir.

output
Span<Byte>

Özellik değerini alan hedef arabellek. aracılığıyla gerekli arabellek boyutunu sorgulamak için boş bir aralık geçirin bytesReturned.

bytesReturned
Int32

öğesine yazılan outputbayt sayısını döndürür. Çok küçükse (veya boşsa output ), değeri tutmak için gereken arabellek boyutunu döndürür.

Döndürülenler

Özelliği başarıyla olarak outputokunduysa true olur. False değeri tutacak kadar büyük değilse output , bu durumda bytesReturned gerekli arabellek boyutunu içerir. Diğer tüm hatalar için bir özel durum oluşturulur.

Özel durumlar

ERROR_INSUFFICIENT_BUFFER veya ERROR_MORE_DATA dışında herhangi bir HttpSys hatası.

Yüklenen Windows HTTP Server API'si HttpQueryRequestProperty'yi desteklemiyorsa.

Açıklamalar

Gerekli arabellek boyutu önceden bilinmiyorsa, önce içinde gerekli boyutu bytesReturnedalmak için bu yöntemi boş output olarak çağırın, ardından bu kadar bayt ayırıp sorguyu yeniden deneyin.

Şunlara uygulanır