HttpRequestMessageProperty.Method Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает команду HTTP для 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
Значение свойства
Команда HTTP для HTTP-запроса.
Исключения
Присвоено значение null
.
Примеры
В следующем примере кода экземпляр этого класса возвращается из сообщения, а затем перенаправляется в различные методы на основе этого свойства.
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
Комментарии
По умолчанию WCF использует команду POST для HTTP-сообщений. Команда GET используется WCF для отображения справки при доступе к базовому адресу ServiceHost. Это полезно для проверки активности службы WCF при использовании веб-браузера. Другие методы, определенные СТАНДАРТОМ RFC HTTP : PUT, DELETE, HEAD, OPTIONS, TRACE и CONNECT. При взаимодействии с другими службами эти методы демонстрируют специальные поведения.