HttpRequestMessageProperty.Method Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u het HTTP-woord voor de HTTP-aanvraag op of stelt u deze in.
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
Waarde van eigenschap
Het HTTP-woord voor de HTTP-aanvraag.
Uitzonderingen
De waarde is ingesteld op null.
Voorbeelden
Met de volgende code wordt een exemplaar van deze klasse opgehaald uit het bericht en vervolgens verzonden naar verschillende methoden op basis van deze eigenschap.
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
Opmerkingen
WCF gebruikt standaard de POST-term voor HTTP-berichten. Het GET-werkwoord wordt door WCF gebruikt om help-informatie weer te geven bij het openen van het basisadres van een ServiceHost. Dit is handig om te controleren of een WCF-service actief is wanneer u een webbrowser gebruikt. Andere methoden die zijn gedefinieerd door de HTTP RFC zijn PUT, DELETE, HEAD, OPTIONS, TRACE en CONNECT. Deze methoden hebben speciaal gedrag bij het samenwerken met andere services.