HttpRequestMessageProperty.Method Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví příkaz HTTP pro požadavek HTTP.
public:
property System::String ^ Method { System::String ^ get(); void set(System::String ^ value); };
public string Method { get; set; }
member this.Method : string with get, set
Public Property Method As String
Hodnota vlastnosti
Příkaz HTTP pro požadavek HTTP.
Výjimky
Hodnota je nastavena na null
.
Příklady
Následující kód získá instanci této třídy ze zprávy a pak odešle do různých metod na základě této vlastnosti.
public Message ProcessMessage(Message request)
{
Message response = null;
//The HTTP Method (e.g. GET) from the incoming HTTP request
//can be found on the HttpRequestMessageProperty. The MessageProperty
//is added by the HTTP Transport when the message is received.
HttpRequestMessageProperty requestProperties =
(HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
//Here we dispatch to different internal implementation methods
//based on the incoming HTTP verb.
if (requestProperties != null)
{
if (String.Equals("GET", requestProperties.Method,
StringComparison.OrdinalIgnoreCase))
{
response = GetCustomer(request);
}
else if (String.Equals("POST", requestProperties.Method,
StringComparison.OrdinalIgnoreCase))
{
response = UpdateCustomer(request);
}
else if (String.Equals("PUT", requestProperties.Method,
StringComparison.OrdinalIgnoreCase))
{
response = AddCustomer(request);
}
else if (String.Equals("DELETE", requestProperties.Method,
StringComparison.OrdinalIgnoreCase))
{
response = DeleteCustomer(request);
}
else
{
//This service doesn't implement handlers for other HTTP verbs (such as HEAD), so we
//construct a response message and use the HttpResponseMessageProperty to
//set the HTTP status code to 405 (Method Not Allowed) which indicates the client
//used an HTTP verb not supported by the server.
response = Message.CreateMessage(MessageVersion.None, String.Empty, String.Empty);
HttpResponseMessageProperty responseProperty = new HttpResponseMessageProperty();
responseProperty.StatusCode = HttpStatusCode.MethodNotAllowed;
response.Properties.Add( HttpResponseMessageProperty.Name, responseProperty );
}
}
else
{
throw new InvalidOperationException( "This service requires the HTTP transport" );
}
return response;
}
Public Function ProcessMessage(ByVal request As Message) As Message Implements IUniversalContract.ProcessMessage
Dim response As Message = Nothing
'The HTTP Method (e.g. GET) from the incoming HTTP request
'can be found on the HttpRequestMessageProperty. The MessageProperty
'is added by the HTTP Transport when the message is received.
Dim requestProperties As HttpRequestMessageProperty = CType(request.Properties(HttpRequestMessageProperty.Name), HttpRequestMessageProperty)
'Here we dispatch to different internal implementation methods
'based on the incoming HTTP verb.
If requestProperties IsNot Nothing Then
If String.Equals("GET", requestProperties.Method, StringComparison.OrdinalIgnoreCase) Then
response = GetCustomer(request)
ElseIf String.Equals("POST", requestProperties.Method, StringComparison.OrdinalIgnoreCase) Then
response = UpdateCustomer(request)
ElseIf String.Equals("PUT", requestProperties.Method, StringComparison.OrdinalIgnoreCase) Then
response = AddCustomer(request)
ElseIf String.Equals("DELETE", requestProperties.Method, StringComparison.OrdinalIgnoreCase) Then
response = DeleteCustomer(request)
Else
'This service doesn't implement handlers for other HTTP verbs (such as HEAD), so we
'construct a response message and use the HttpResponseMessageProperty to
'set the HTTP status code to 405 (Method Not Allowed) which indicates the client
'used an HTTP verb not supported by the server.
response = Message.CreateMessage(MessageVersion.None, String.Empty, String.Empty)
Dim responseProperty As New HttpResponseMessageProperty()
responseProperty.StatusCode = HttpStatusCode.MethodNotAllowed
response.Properties.Add(HttpResponseMessageProperty.Name, responseProperty)
End If
Else
Throw New InvalidOperationException("This service requires the HTTP transport")
End If
Return response
End Function
Poznámky
WCF ve výchozím nastavení používá příkaz POST pro zprávy HTTP. Příkaz GET používá WCF k zobrazení informací nápovědy při přístupu k základní adrese ServiceHost. To je užitečné při kontrole, jestli je služba WCF aktivní při použití webového prohlížeče. Další metody definované protokolem HTTP RFC jsou PUT, DELETE, HEAD, OPTIONS, TRACE a CONNECT. Tyto metody mají zvláštní chování při spolupráci s jinými službami.