HttpRequestMessageProperty.Method 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置 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 对 HTTP 消息使用 POST 谓词。 WCF 使用 GET 谓词在访问 ServiceHost 的基址时显示帮助信息。 这可用于检查 WCF 服务在使用 Web 浏览器时是否处于活动状态。 HTTP RFC 定义的其他方法是 PUT、DELETE、HEAD、OPTIONS、TRACE 和 CONNECT。 这些方法在与其他服务进行互操作时有特殊的行为。